知识大全 java.imageIo给图片添加水印的实现代码

Posted 水印

篇首语:入于污泥而不染不受资产阶级糖衣炮弹的侵蚀,是最难能可贵的革命品质。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 java.imageIo给图片添加水印的实现代码相关的知识,希望对你有一定的参考价值。

java.imageIo给图片添加水印的实现代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

最近项目在做一个商城项目 项目上的图片要添加水印① 添加图片水印;②:添加文字水印;一下提供下个方法 希望大家可以用得着   复制代码 代码如下: 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 srcImgPath             String targerPath Integer degree Integer width Integer height             float 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_INTERPOLATION                     RenderingHints 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_ATOP                     alpha));             // 表示水印图片的位置             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 srcImgPath             String targerPath Integer degree Integer width Integer height             Float 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_INTERPOLATION                     RenderingHints 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);             // 设置 Font             g setFont(new Font("宋体" Font BOLD ));             float alpha = clarity;             g setComposite(AlphaComposite getInstance(AlphaComposite SRC_ATOP                     alpha));             // 第一参数 >设置的内容 后面两个参数 >文字在图片上的坐标位置(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();                        

   还有一个图片缩放代码:

复制代码 代码如下: cha138/Article/program/Java/JSP/201311/20206

相关参考

知识大全 asp.net中水印的实现代码

  水印是为了防止别盗用我们的图片  两种方式实现水印效果  )可以在用户上传时添加水印  a)好处:与种方法相比用户每次读取此图片时服务器直接发送给客户就行了  b)缺点:破坏了原始图片  )通过全

知识大全 Java图片添加水印

Java图片添加水印  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  importjavaawt*

知识大全 java图片处理类(图片水印,图片缩放)

  可实现以下常用功能缩放图像切割图像图像类型转换彩色转黑白文字水印图片水印等  代码如下复制代码importjavaawtAlphaComposite;importjavaawtColor;impo

知识大全 php给上传图片加图片水印

 <formaction="<?=$_SERVER[PHP_SELF]?>"method="post"enctype="multipart/formdata"name=fo

知识大全 实现给上传图片加水印图案[2]

PHP实例:实现给上传图片加水印图案[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  <

知识大全 实现给上传图片加水印图案[1]

PHP实例:实现给上传图片加水印图案[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  用PH

知识大全 Java图片处理 文字水印 图片水印 缩放 补白

Java图片处理文字水印图片水印缩放补白  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  pack

知识大全 asp.net生成缩略图及给原始图加水印

生成缩略图及给原始图加水印代码如下cha138/Article/program/net/201311/11730

知识大全 添加后台list给前台select标签赋值简单实现

本文为大家介绍下通过添加后台list怎么实现给前台select标签赋值具体代码如下感兴趣的朋友可以参考下哈 复制代码代码如下:$ajax(url:"user!findUserListacti

知识大全 js动态给table添加/删除tr的方法

这篇文章介绍了js动态给table添加/删除tr的方法有需要的朋友可以参考一下 复制代码代码如下: <!DOCTYPEHTMLPUBLIC"//WC//DTDHTMLTran