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

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