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

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