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

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