图片添加图片水印和文字水印
生活随笔
收集整理的這篇文章主要介紹了
图片添加图片水印和文字水印
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
title: 圖片添加圖片水印和文字水印 tags: 圖片處理,水印,圖片水印,文字水印 date: 2018-10-29 20:15:10 grammar_cjkRuby: true
前言:最近需要對圖片添加文字水印和圖片水印,而且要根據(jù)原圖片不同的大小,打上不同的大小的水印和文字,保證用戶在視覺上看到的水印的大小是一致的。
話不多說,上代碼,先上處理圖片的代碼
/*** @author: Aubergine* @date: 2018/10/28 11:57* @param srcImage 原圖片的地址* @param pressImg 水印圖片* @param pressText 水印文字* @param color 字體的顏色* @param font 字體的大小* @param alpha 模糊度* @return*/public BufferedImage pressText(File srcImage, Image pressImg, String pressText, Color color, Font font, float alpha) {final BufferedImage destImage = ImageUtil.read(srcImage);final Graphics2D gf = destImage.createGraphics();// 抗鋸齒gf.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);gf.setColor(color);gf.setFont(font);// 透明度gf.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, alpha));// 在指定坐標(biāo)繪制水印文字FontMetrics metrics = gf.getFontMetrics(font);int textLength = metrics.stringWidth(pressText);int textHeight = metrics.getAscent() - metrics.getLeading() - metrics.getDescent();gf.drawString(pressText, destImage.getWidth() - textLength, destImage.getHeight() - (textHeight / 2));gf.dispose();int width = destImage.getWidth((ImageObserver) null);int height = destImage.getHeight((ImageObserver) null);BufferedImage destImage2 = new BufferedImage(width, height, 1);Graphics2D g = destImage2.createGraphics();g.drawImage(destImage, 0, 0, width, height, (ImageObserver) null);int pressImgWidth = pressImg.getWidth((ImageObserver) null);int pressImgHeight = pressImg.getHeight((ImageObserver) null);int x = (width - pressImgWidth) - textLength - 5;int y = (height - pressImgHeight);g.setComposite(AlphaComposite.getInstance(10, alpha));// 給圖片打上圖片水印g.drawImage(pressImg, x, y, pressImgWidth, pressImgHeight, (ImageObserver) null);g.dispose();return destImage2;} 復(fù)制代碼調(diào)用的時候這樣用
// 原圖尺寸 3800*2850 ImageUtil.write(pressText(cn.hutool.core.io.FileUtil.file("C:\\Users\\Administrator\\Desktop\\1-3800-2850.jpg"),ImageUtil.read(new File("C:\\Users\\Administrator\\Desktop\\newlog\\116_116.png")),"@版權(quán)版權(quán)", Color.WHITE,new Font("微軟雅黑", Font.BOLD, 86),1f), cn.hutool.core.io.FileUtil.file("C:\\Users\\Administrator\\Desktop\\1-3800-2850-r.jpg")); // 原圖尺寸是 1500*760 ImageUtil.write(pressText(FileUtil.file("C:\\Users\\Administrator\\Desktop\\1-1500-760.jpg"),ImageUtil.read(new File("C:\\Users\\Administrator\\Desktop\\newlog\\58_58.png")),"@版權(quán)版權(quán)", Color.WHITE,new Font("微軟雅黑", Font.BOLD, 42),1f), cn.hutool.core.io.FileUtil.file("C:\\Users\\Administrator\\Desktop\\1-1500-760-r.jpg"));復(fù)制代碼PS:推薦一個比較好的JAVA工具包hutool,里面有很多的小工具,在開發(fā)的過程中使用很方便。
3800*2850原圖 3800*2850水印圖片 1500*760原圖 1500*760效果圖總結(jié)
以上是生活随笔為你收集整理的图片添加图片水印和文字水印的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 混合APP开发框架资料汇总
- 下一篇: 关于javascript中的回调函数