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

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