1 24 package org.riotfamily.common.image; 25 26 import java.io.IOException ; 27 28 import org.apache.commons.logging.Log; 29 import org.apache.commons.logging.LogFactory; 30 import org.riotfamily.common.io.CommandUtils; 31 import org.riotfamily.common.util.FormatUtils; 32 import org.springframework.beans.factory.config.AbstractFactoryBean; 33 34 38 public class ImageMagickCropperFactoryBean extends AbstractFactoryBean { 39 40 private static Log log = LogFactory.getLog(ImageMagickCropperFactoryBean.class); 41 42 private String convertCommand = "convert"; 43 44 public void setConvertCommand(String convertCommand) { 45 this.convertCommand = convertCommand; 46 } 47 48 protected Object createInstance() throws Exception { 49 try { 50 log.info("Looking for ImageMagick binary: " + convertCommand); 51 String version = CommandUtils.exec(convertCommand, "-version"); 52 log.info(version); 53 ImageMagickCropper cropper = new ImageMagickCropper(); 54 int majorVersion = FormatUtils.extractInt(version, "ImageMagick ([0-9])"); 55 log.info("Major version: " + majorVersion); 56 if (majorVersion < 6) { 57 cropper.setRepage(false); 58 } 59 cropper.setConvertCommand(convertCommand); 60 return cropper; 61 } 62 catch (IOException e) { 63 log.warn("ImageMagick not found - cropping disabled."); 64 } 65 return null; 66 } 67 68 public Class getObjectType() { 69 return ImageMagickCropper.class; 70 } 71 72 } 73 | Popular Tags |