首页 > 代码库 > 打水印 Imagename_biao是水印文件 ImgName是原图
打水印 Imagename_biao是水印文件 ImgName是原图
/** * 打水印 Imagename_biao是水印文件 ImgName是原图 * @param Imagename_biao * @param ImgName */ public static void imgYin(String Imagename_biao, String ImgName) { //System.out.println("11111111111111111111111111111111 inin"); FileImageOutputStream out=null; File _file=null; BufferedImage image=null; File _filebiao=null; try { _file = new File(ImgName); Image src = ImageIO.read(_file); int wideth = src.getWidth(null); int height = src.getHeight(null); //宽大于300才打水印 if (wideth > 300) { image = new BufferedImage(wideth, height, BufferedImage.TYPE_INT_RGB); Graphics g = image.createGraphics(); g.drawImage(src, 0, 0, wideth, height, null); // g.drawImage(src.getScaledInstance(wideth, // height,Image.SCALE_SMOOTH), 0, 0,wideth, height, null); // 水印文件 _filebiao = new File(Imagename_biao); Image src_biao = ImageIO.read(_filebiao); int wideth_biao = src_biao.getWidth(null); int height_biao = src_biao.getHeight(null); // 水印文件显示在中央 g.drawImage(src_biao, (int) (0.5 * (wideth - wideth_biao)), (int) (0.5 * (height - height_biao)), wideth_biao, height_biao, null); // g.drawImage(src_biao.getScaledInstance(wideth_biao, // height_biao,Image.SCALE_SMOOTH), (int)(0.5*(wideth // -wideth_biao)) , (int)(0.5*(height -height_biao)), // wideth_biao, // height_biao, null); // 水印文件在原图片文件的位置,原图片文件的右下角为wideth-0,height-0 g.dispose(); // FileOutputStream out = new FileOutputStream(ImgName); // JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); // JPEGEncodeParam param = // encoder.getDefaultJPEGEncodeParam(image); // param.setQuality(0.9f, false); //不压缩图像fals // encoder.setJPEGEncodeParam(param); // encoder.encode(image); // out.flush(); // out.close(); // ImageIO.write(image, "jpg", new File(ImgName)); Iterator<ImageWriter> iter = ImageIO .getImageWritersByFormatName("jpg"); if (iter.hasNext()) { ImageWriter writer = iter.next(); ImageWriteParam param = writer.getDefaultWriteParam(); param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); //MODE_COPY_FROM_METADATA ,MODE_EXPLICIT param.setCompressionQuality(0.9f); //System.out.println("Quality:"+1.0); out = new FileImageOutputStream( new File(ImgName)); writer.setOutput(out); // writer.write(bi); writer.write(null, new IIOImage(image, null, null), param); out.close(); writer.dispose(); } } } catch (Exception e) { System.out.println(e); e.printStackTrace(); }finally{ if(out!=null){ try { out.close(); } catch (Exception e) { //e.printStackTrace(); } } } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。