Java实现图片加水印且控制位置和透明度.doc_第1页
Java实现图片加水印且控制位置和透明度.doc_第2页
Java实现图片加水印且控制位置和透明度.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java实现图片加水印且控制位置和透明度昨天要做一个给图片加水印的功能,不想使用一些插件,就在网上转了一会儿,经过改装成了我需要的功能,代码如下:package org.guhao;import java.awt.AlphaComposite;import java.awt.Graphics2D;import java.awt.Image;import java.awt.image.BufferedImage;import java.io.File;import java.text.SimpleDateFormat;import java.util.Date;import javax.imageio.ImageIO;public class TestWatermark /* 图片水印* param pressimg 水印图片* param targetimg 目标图片* param location 位置:1、左上角,2、右上角,3、左下角,4、右下角,5、正中间* param alpha 透明度*/public static void pressImage(String pressimg, String targetimg, int location, float alpha) try /读取目标图片File img = new File(targetimg);Image src = ImageIO.read(img);int width = src.getWidth(null);int height = src.getHeight(null);BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);Graphics2D g = image.createGraphics();g.drawImage(src, 0, 0, width, height, null);/水印文件Image src_biao = ImageIO.read(new File(pressimg);int width_biao = src_biao.getWidth(null);int height_biao = src_biao.getHeight(null);/如果水印图片高或者宽大于目标图片是做的处理,使其水印宽或高等于目标图片的宽高,并且等比例缩放int new_width_biao = width_biao;int new_height_biao = height_biao;if(width_biao width)new_width_biao = width;new_height_biao = (int) (double)new_width_biao/width_biao*height);if(new_height_biao height)new_height_biao = height;new_width_biao = (int) (double)new_height_biao/height_biao*new_width_biao);/根据位置参数确定坐标位置int x = 0;int y = 0;switch(location)case 1:break;case 2:x = width new_width_biao;break;case 3:y = height new_height_biao;break;case 4:x = width new_width_biao;y = height new_height_biao;break;case 5:x = (width new_width_biao)/2;y = (height new_height_biao)/2;break;default:break;g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, alpha);g.drawImage(src_biao, x, y, new_width_biao, new_height_biao, null);/水印文件结束g.dispose();ImageIO.write( image, “png”, img); catch (Exception e) e.printStackTrace();这个功能我用1000张图片做测试的,平均0.1秒左右操作一张图片,本地测的,如果是服务器的话相信会很快的,但是这个还有一个bug,就是给背 景透明的png图片加水印会使背景变黑,这大概是重新drawImage的时候改变了图片的一些属性,如果那个朋友解决了这个问题记得告诉

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论