Author Topic: How does it work  (Read 11741 times)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1992
    • zapsolution
How does it work
« on: February 07, 2020, 01:19:04 pm »
GDImage 7.13

Is a mature graphic library (DLL) that exists since more than 20 years.
It is available in 32 or 64-bit.
The 32-bit version is ANSI based, while the 64-bit version is UNICODE based.

GDImage controls are persistent, you'll never worry about redrawing when your window is minimized or temporarily covered,
because they handle all the messy Windows details for you.
You can have multiple GDImage controls inside of a same application.

The working philosophy is the same than for Windows itself.
A GDImage control could be compared to the Windows desktop that could have icons (sprites) or popup window inside of it (widgets).
While a GDImage background is static, all the objects added to it could be moved around with the mouse or the keyboard arrow keys, once an object has got the focus.
You can anchored each object added to a GDImage control just like regular controls inside of a window, you can change the z-order from bottom to top and reverse, the objects are working the same than PhotoShop multiple transparent layers.

Main features

• Full 32-bit ARGB color mode, suitable to perform alphablending, and working in composited mode (DWM aware).
• Mix bitmaps, vectorial drawing, and 3D in the same graphic control.
• Create child controls, popup layered windows, popup shapped windows (window based on region).
• Sprite animation, dynamic image rotation.
• Built-in visual effects to perform slide show presentation.
• Mix GDI32, GDIPLUS, and OpenGL inside the same graphic control.
• Create 3D texture from any of the supported graphic format.
• Full range image and text rotation (0-360°).
• Multiple z-order composited layers using opaque or variable opacity.
• Display large image with scrolling capabilities.
• Zooming with bicubic interpolation and pixel preservation.
• Events callback to create interactive applications (mousing + keyboard).
• Multiple channel settings for alpha, red, green, blue, brightness, contrast, hue, saturation.
• 3D primitives (cube, sphere, cup, dome, cone, plan, disk, cylinder).
• Anchor mode (to use with existing Windows controls, or GDImage graphic objects).
• Anti red-eye.
• Gauge components.
• Grayed disabled window mode (to display child popup window in modal mode).
• Built-in theme support (to skin SDK window).
• Image using multi-frame, for the purpose of static animation.
• Clock control.
• Ready to use "SDK style" source code examples, to ease translation from one language to another.
• Detailed CHM help file.

Sprite objects:

Image, text, line, arrow, ellipse, rectangle, polyline, polypoligon, curve.
All the sprite objects are floating above the image background as transparent or opaque layers.

Object properties:
 
• objType (text, ellipse, rectangle, curve, arrow, polyline, bitmap, bezier, polypolygon, textBitmap)
• useFont (True Type)
• useSize (Font size)
• fontFam (Font family)
• strFormat (String format)
• useARGB (Full 32-bit ARGB color)
• use3D (Boolean for 3D effect)
• x1 (x location)
• y1 (y location)
• x2 (width)
• y2 (height)
• visible (boolean visibility state)
• order (zOrder location)
• locked (boolean, can't be moved with the mouse)
• ID (unique object IDentifier)
• Style (object style)
• Bitmap (handle to the associated DIB bitmap)
• Region (handle to the associated region)
• objLabel (friendly name)
• xCapture (mouse X capture)
• yCapture (mouse Y capture)
• opacity (object opacity, alpha channel value)
• scale (zooming size)
• clone (pointer to the original object)
• xP (X offset for scaled object)
• yP (Y offset for scaled object)
• angle (The rotation angle)
• quality (Antialias quality)
• flipmode (display orientation)
• selected (in case of multiple object selection)
• hidden (to hide a specific object)
• brightness (image aspect)
• contrast (image aspect)
• red (color channel)
• green (color channel)
• blue (color channel)
• hue (image aspect)
• FrameCount (number of frame)
• FrameToUse (active frame to use)
• anchor (top, left, center, right, bottom, etc.)

GDImage is 100% compatible with the WinLIFT skin engine
They have been designed to work together, and they perform mutual code detection.
« Last Edit: July 13, 2023, 10:09:48 am by Patrice Terrier »
Patrice
(Always working with the latest Windows version available...)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1992
    • zapsolution
Version 7.12
« Reply #1 on: June 20, 2023, 07:20:08 pm »
The new GDImage64.dll version 7.12 has been attached to the first post of this thread.

This version is now using the macro MAKEINTRESOURCE to load bitmap or image from resource.

The declaration has not changed (it is still using a WCHAR*),
however here is now the new syntax to use, to please Microsoft.

hBitmap = ZI_LoadFromResource(NULL, MAKEINTRESOURCE(IDB_PNG1));
or
hBitmap = ZI_LoadBitmap(MAKEINTRESOURCE(IDB_PNG1));
 
Patrice
(Always working with the latest Windows version available...)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1992
    • zapsolution
Version 7.13
« Reply #2 on: July 13, 2023, 10:09:03 am »
The internal size of the CHARTFONT structure has changed,  the private font path has been enlarged from 64 to MAX_PATH.
To avoid error when using larger path.

The new version is attached to the first post of this thread.
« Last Edit: July 13, 2023, 01:31:48 pm by Patrice Terrier »
Patrice
(Always working with the latest Windows version available...)