- 为了保护图片的版权,我们经常需要在上传的照片上打上版权信息或图标,下面介绍利用JMagick在图片上做标记。引入JMagick需要的类库:
import java.awt.Dimension; import java.awt.Rectangle; import magick.CompositeOperator; import magick.ImageInfo; import magick.MagickException; import magick.MagickImage;
- 下面介绍如何使用JMagick做标记:
public static void mask(String logoPath, String srcPathName, String destPathName, int location, int scale) throws MagickException { int width = getWidth(srcPathName); int height = getHeight(srcPathName); int x = 0, y = 0; int w, h; w = scale * 70 / 100; h = scale * 65 / 100; boolean lc = true; if (width width) { x = width - w * 2 - 10; } if (y height) { y = height - h - 10; } if (lc) { ImageInfo info = new ImageInfo(); MagickImage image = null; MagickImage mask = null; MagickImage dest = null; try { image = new MagickImage(new ImageInfo(srcPathName + “[0]“)); mask = new MagickImage(new ImageInfo(logoPath)); image.setFileName(destPathName); image.writeImage(info); dest = new MagickImage(new ImageInfo(destPathName)); dest.compositeImage(CompositeOperator.AtopCompositeOp, mask, x, y); dest.setFileName(destPathName); dest.writeImage(info); } finally { if (image != null) { image.destroyImages(); } if (mask != null) { mask.destroyImages(); } if (dest != null) { dest.destroyImages(); } } } }getWidth(String src) & getHeight(String src)
public static int getWidth(String src) throws MagickException { MagickImage magImage = null; try { ImageInfo info = new ImageInfo(src + “[0]“); magImage = new MagickImage(info); Dimension imageDim = magImage.getDimension(); return imageDim.width; } finally { if (magImage != null) { magImage.destroyImages(); } } } public static int getHeight(String src) throws MagickException { MagickImage magImage = null; try { ImageInfo info = new ImageInfo(src + “[0]“); magImage = new MagickImage(info); Dimension imageDim = magImage.getDimension(); return imageDim.height; } finally { if (magImage != null) { magImage.destroyImages(); } } }