Skip to main content
kotir40948101
Level 2
May 18, 2016 9:53 AM UTC
Solved

How to use programmatically imagemagick in aem?

want to Convert image in aem as imagemagic takes realpath(c:\path) but i am unable to provide it.

want to implement in programatically without using CommandLineProcess step.

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
kautuk_sahni
kautuk_sahniAccepted solution
Level 9
May 19, 2016 6:18 AM UTC

Hi 

Use JMagick (docs). Read the documentation.

It provides all the functionality of ImageMagick. You may also look into another ImageMagick Java wrapper, im4java.

There is a good starters document for im4java here

//

Here is an example,

/** Typical scaling implementation using JMagick **/ ImageInfo origInfo = new ImageInfo(absPath); //load image info MagickImage image = new MagickImage(origInfo); //load image image = image.scaleImage(finalWidth, finalHeight); //to Scale image image.setFileName(absNewFilePath); //give new location image.writeImage(origInfo); //save

 

Now you just need to create a custom component/Service to achieve the needful.

 

Thanks and Regards

Kautuk Sahni

Kautuk Sahni

2 replies

smacdonald2008
Level 10
May 18, 2016 3:15 PM UTC

To perform this use case -  you would require a Java API such as the following:

http://im4java.sourceforge.net/

Then use this API within an AEM OSGi to create a service. 

Translate
kautuk_sahni
kautuk_sahniAccepted solution
Level 9
May 19, 2016 6:18 AM UTC

Hi 

Use JMagick (docs). Read the documentation.

It provides all the functionality of ImageMagick. You may also look into another ImageMagick Java wrapper, im4java.

There is a good starters document for im4java here

//

Here is an example,

/** Typical scaling implementation using JMagick **/ ImageInfo origInfo = new ImageInfo(absPath); //load image info MagickImage image = new MagickImage(origInfo); //load image image = image.scaleImage(finalWidth, finalHeight); //to Scale image image.setFileName(absNewFilePath); //give new location image.writeImage(origInfo); //save

 

Now you just need to create a custom component/Service to achieve the needful.

 

Thanks and Regards

Kautuk Sahni

Translate
Kautuk Sahni