Search code examples
javaimagickim4java

imagick convert png to jpg in java with im4java


I need to convert from PNG to JPG.

However, iMagick adds a black background to it.

I saw this question which is for PHP, and tried to write the same for java like this:

// create the a jpg image
ConvertCmd cmd = new ConvertCmd();
// create the operation, add images and operators/options
IMOperation op = new IMOperation();
op.addImage(brandingURL);
op.format("JPEG");
op.composite();
op.background("white");
op.addImage(imageLocation);
//op.transparent();
// execute the operation
cmd.run(op);

But still, the image comes out with a black background.

What am I missing?


Solution

  • I had to write the code like this:

     Info imageInfo = new Info(brandingURL, true);
     IMOperation op = new IMOperation();
     op.addImage(brandingURL);
     op.size(imageInfo.getImageWidth(), imageInfo.getImageHeight());
     op.addImage("xc:white", "c://write//test.jpeg");
     op.addImage("c://write//test.jpeg");
     CompositeCmd composite = new CompositeCmd();
     composite.run(op);