How to use programmatically imagemagick in aem? | Community
Skip to main content
kotir40948101
Level 2
May 18, 2016
Solved

How to use programmatically imagemagick in aem?

  • May 18, 2016
  • 2 replies
  • 1993 views

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.
Best answer by kautuk_sahni

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

2 replies

smacdonald2008
Level 10
May 18, 2016

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. 

kautuk_sahni
Community Manager
kautuk_sahniCommunity ManagerAccepted solution
Community Manager
May 19, 2016

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