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

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