Tech Articles


Using ImageMagick from PowerBuilder


ImageMagick is a free open-source software package that allows you to convert image files between formats, resize images and perform other functions. It can be used from the command line or as a COM object using PowerBuilder’s OLEObject functionality.

 

You can download the installer from here: http://www.imagemagick.org/script/binary-releases.php#windows

 

You must use one of the installers with the word “dynamic” in the description. I chose the Win32 installer because it offers a higher resolution than the Win64 Dynamic installer.

 

The command documentation for ImageMagick can be found here: http://www.imagemagick.org/script/command-line-tools.php

 

There are several commands that are supported by the COM interface.

 

compare: Compares two image files and returns information about the differences.

 

composite: Overlaps one image over another resulting in a third image file.

 

convert: Converts between image formats as well as resizing the image and other actions such as blur, crop, despeckle, and much more.

 

identify: Describes the format and characteristics of image files.

 

mogrify: Resizes the image and other actions such as blur, crop, despeckle, and much more. Mogrify overwrites the original image file, whereas, convert writes to a different image file.

 

montage: Creates a composite image by combining several separate images. The images are tiled on the composite image optionally adorned with a border, frame, image name, and more.

 

Here is an example that converts a JPG file to PNG:

 

OLEObject oMagick

String ls_origfile, ls_destfile

Integer li_rc

Any la_result

 

ls_origfile = “C:\PBSource\PB105\ImageMagick\Totoro.jpg”

ls_destfile = “C:\PBSource\PB105\ImageMagick\Totoro.png”

 

oMagick = Create OLEObject

 

li_rc = oMagick.ConnectToNewObject(“ImageMagickObject.MagickImage”)

If li_rc = 0 Then

   la_result = oMagick.Convert(ls_origfile, “-format”, “png”, ls_destfile)

   MessageBox(“Convert”, “Result: ” + String(la_result))

Else

   MessageBox(“ConnectToNewObject”, “Failed: ” + String(li_rc), StopSign!)

End If

 

oMagick.DisconnectObject()

 

Destroy oMagick

Comments (0)
There are no comments posted here yet

Find Articles by Tag

SOAP License SQL HTTPClient Stored Procedure DevOps Azure WebBrowser File .NET Assembly Bug Validation DataType RibbonBar Builder Event Handling NativePDF InfoMaker Authorization Linux OS Database Table Schema RESTClient JSONParser Deployment Testing Migration PowerServer Web Performance Database Table Data C# Encryption Repository SQL Server TLS/SSL Export Debugger UI Modernization .NET Std Framework Database Table WinAPI Export JSON Expression OrcaScript Encoding PostgreSQL PBDOM PowerBuilder Compiler Oracle OAuth 2.0 Jenkins Windows OS Charts SnapDevelop DataWindow Platform OLE SqlExecutor MessageBox OAuth Elevate Conference Database Object PowerBuilder API External Functions Installation UI Themes Windows 10 Icons Script Git 64-bit PDF Window PostgreSQL ODBC driver Application ActiveX PowerServer Mobile Debug Debugging Filter Interface SVN DataWindow JSON Graph Error BLOB Import JSON ODBC SqlModelMapper TreeView PFC Trial RichTextEdit Control Model CrypterObject DLL Menu JSONGenerator Event Configuration Database Connection XML Database Profile Design Variable PBVM REST Source Control Branch & Merge TFS Visual Studio SDK IDE Web API Source Code Text Mobile RibbonBar Event Handler Data Transaction Web Service Proxy JSON COM SnapObjects PBNI PowerScript (PS) Syntax UI GhostScript Authentication Automated Testing Array Service PDFlib Database Messagging Android DragDrop .NET DataStore Import Class TortoiseGit CoderObject Outlook iOS Excel CI/CD Database Painter Open Source Icon Sort Resize 32-bit PowerBuilder (Appeon)