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

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