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

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