Skip to Content

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


21 Comments
You must be Logged on to comment or reply to a post.