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

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