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

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