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

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