水印图片、图片旋转

来源:互联网 发布:华中测评中心 知乎 编辑:程序博客网 时间:2024/04/29 10:34


操作步骤:

imagemagickimagemagick官网

1)安装此插件,传送命令形式完成操作。

2)如果使用的是java语言,请下载Im4java,里面包含有所需要的jar包im4java-1.4.0.jar

3)

package com.LovePatPrint.action.ceshi;import java.awt.image.BufferedImage;import java.io.File;import java.util.ArrayList;import java.util.List;import java.util.Map;import javax.imageio.ImageIO;import org.im4java.core.ConvertCmd;import org.im4java.core.IMOperation;public class FengZhuang { public static String imageMagickPath = "C:\\Program Files\\ImageMagick-6.9.0-Q16";//插件安装路径 public static boolean flag=false;public static void main(String[] args) {String s="E:\\4.jpg,500, 500, 1550, 900,45;E:\\3.jpg,500, 500, 1550, 200,45";String a[]=s.split(";");List<AddImg> addimglist=new ArrayList<AddImg>();for(int i=0;i<a.length;i++){String aa =a[i];String aaa[]=aa.split(",");for(int g=0;g<aaa.length;g++){AddImg addImg=new AddImg();addImg.setImgSrc(aaa[0]);addImg.setImgWidth(Integer.parseInt(aaa[1].trim()));addImg.setImgHeight(Integer.parseInt(aaa[2].trim()));addImg.setImgx(Integer.parseInt(aaa[3].trim()));addImg.setImgy(Integer.parseInt(aaa[4].trim()));addimglist.add(addImg);}}String srcImg="E:\\4.jpg";String outImg="E:\\44.jpg";//ImageWatermark(srcImg,addimglist,outImg);rotate(srcImg,outImg,190.6789);}/**     * 图片水印     *     * @param srcImg   源图片     * @param addImgList 水印     * @param outImg  生成图片     */public static void ImageWatermark(String srcImg,List<AddImg>addImgList ,String outImg){    try {    // 获取图片的宽高BufferedImage bi = ImageIO.read(new File(srcImg));IMOperation op = new IMOperation();op.addImage(srcImg);//背景图op.compose("dstover");//顶层图片与背景图片交汇处变为无色,未交汇处不变,背景图片显示。//op.compose("over");//覆盖  详细内容详见:<a target=_blank href="http://www.cnblogs.com/mfryf/archive/2012/02/12/2347975.html" target="_self">覆盖方式详解</a>for(int i=0;i<addImgList.size();i++){op.addImage(addImgList.get(i).getImgSrc());//水印图片op.geometry(addImgList.get(i).getImgWidth(), addImgList.get(i).getImgHeight(), addImgList.get(i).getImgx(), addImgList.get(i).getImgy());//水印图片宽、长、 x、 yop.composite();}op.addImage(outImg);ConvertCmd cmd = new ConvertCmd();//linux下不要设置此值,不然会报错 cmd.setSearchPath(imageMagickPath);cmd.run(op);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} }/** * 图片旋转 *  * @param imagePath *            源图片路径 * @param newPath *            处理后图片路径 * @param degree *            旋转角度 */public static boolean rotate(String imagePath, String newPath, double degree) {    try {              IMOperation op = new IMOperation();             op.addImage(imagePath);            op.background("rgba(255,255,255,1)");            op.rotate(degree);              op.addImage(newPath);                          ConvertCmd cmd = new ConvertCmd();//linux下不要设置此值,不然会报错 cmd.setSearchPath(imageMagickPath);            cmd.run(op);            flag=true;        } catch (Exception e) {    flag=false;    e.printStackTrace();        //System.out.println("图片旋转失败!");    }    return flag;}}



0 0
原创粉丝点击