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