java代码加水印 java excel水印

java.imageIo给图片添加水印的实现代码最近项目在做一个商城项目 项目上的图片要添加水印① 添加图片水印;②:添加文字水印;一下提供下个方法 希望大家可以用得着复制代码代码如下: package blogs image; import java awt AlphaComposite; import java awt Color; import java awt Font; import java awt Graphics D; import java awt Image; import java awt RenderingHints; import java awt image BufferedImage; import java io File; import java io FileOutputStream; import java io InputStream; import java io OutputStream; import javax imageio ImageIO; import javax swing ImageIcon; /*** 图片水印*/ public class ImageUtil {/*** @param args*/public static void main(String[] args) {String srcImgPath = "e:/ png";String iconPath = "e:logo jpg";String targerPath = "e:/ jpg";// 给图片添加水印ImageUtil waterMarkImageByIcon(iconPath srcImgPath targerPath f);// 给图片添加水印 水印旋转// ImageMarkLogoByIcon markImageByIcon(iconPath srcImgPath// targerPath );}/*** 给图片添加水印 可设置水印图片旋转角度** @param iconPath*水印图片路径* @param srcImgPath*源图片路径* @param targerPath*目标图片路径* @param degree*水印图片旋转角度* @param width*宽度(与左相比)* @param height*高度(与顶相比)* @param clarity*透明度(小于 的数)越接近 越透明*/public static void waterMarkImageByIcon(String iconPath String srcImgPathString targerPath Integer degree Integer width Integer heightfloat clarity) {OutputStream os = null;try {Image srcImg = ImageIO read(new File(srcImgPath));System out println("width:" + srcImg getWidth(null));System out println("height:" + srcImg getHeight(null));BufferedImage buffImg = new BufferedImage(srcImg getWidth(null)srcImg getHeight(null) BufferedImage TYPE_INT_RGB);// 得到画笔对象// Graphics g= buffImg getGraphics();Graphics D g = buffImg createGraphics();// 设置对线段的锯齿状边缘处理g setRenderingHint(RenderingHints KEY_INTERPOLATIONRenderingHints VALUE_INTERPOLATION_BILINEAR);g drawImage(srcImg getScaledInstance(srcImg getWidth(null)srcImg getHeight(null) Image SCALE_SMOOTH)null);if (null != degree) {// 设置水印旋转g rotate(Math toRadians(degree)(double) buffImg getWidth() /(double) buffImg getHeight() / );}// 水印图象的路径 水印一般为gif或者png的 这样可设置透明度ImageIcon imgIcon = new ImageIcon(iconPath);// 得到Image对象Image img = imgIcon getImage();float alpha = clarity; // 透明度g setComposite(AlphaComposite getInstance(AlphaComposite SRC_ATOPalpha));// 表示水印图片的位置g drawImage(img width height null);g setComposite(AlphaComposite getInstance(AlphaComposite SRC_OVER));g dispose();os = new FileOutputStream(targerPath);// 生成图片ImageIO write(buffImg "JPG" os);System out println("添加水印图片完成!");} catch (Exception e) {e printStackTrace();} finally {try {if (null != os)os close();} catch (Exception e) {e printStackTrace();}}}/*** 给图片添加水印 可设置水印图片旋转角度** @param logoText*水印文字* @param srcImgPath*源图片路径* @param targerPath*目标图片路径* @param degree*水印图片旋转角度* @param width*宽度(与左相比)* @param height*高度(与顶相比)* @param clarity*透明度(小于 的数)越接近 越透明*/public static void waterMarkByText(String logoText String srcImgPathString targerPath Integer degree Integer width Integer heightFloat clarity) {// 主图片的路径InputStream is = null;OutputStream os = null;try {Image srcImg = ImageIO read(new File(srcImgPath));BufferedImage buffImg = new BufferedImage(srcImg getWidth(null)srcImg getHeight(null) BufferedImage TYPE_INT_RGB);// 得到画笔对象// Graphics g= buffImg getGraphics();Graphics D g = buffImg createGraphics();// 设置对线段的锯齿状边缘处理g setRenderingHint(RenderingHints KEY_INTERPOLATIONRenderingHints VALUE_INTERPOLATION_BILINEAR);g drawImage(srcImg getScaledInstance(srcImg getWidth(null)srcImg getHeight(null) Image SCALE_SMOOTH)null);if (null != degree) {// 设置水印旋转g rotate(Math toRadians(degree)(double) buffImg getWidth() /(double) buffImg getHeight() / );}// 设置颜色g setColor(Color red);// 设置 Fontg setFont(new Font("宋体" Font BOLD ));float alpha = clarity;g setComposite(AlphaComposite getInstance(AlphaComposite SRC_ATOPalpha));// 第一参数 设置的内容 后面两个参数 文字在图片上的坐标位置(x y)g drawString(logoText width height);g dispose();os = new FileOutputStream(targerPath);// 生成图片ImageIO write(buffImg "JPG" os);System out println("添加水印文字完成!");} catch (Exception e) {e printStackTrace();} finally {try {if (null != is)is close();} catch (Exception e) {e printStackTrace();}try {if (null != os)os close();} catch (Exception e) {e printStackTrace();}}} }
还有一个图片缩放代码:

推荐阅读