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

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