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

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