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

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