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

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