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

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