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

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