给图片加水印

简介:

在51cto写博文上传图片的时候,觉得图片上加上水印很有意思,与是有了自己动手写一个加水印的小程序,自己动手丰衣足食。来看看我写的代码吧,哈哈

 
  1. package com.sucre.blog;  
  2.  
  3. import java.awt.Color;  
  4. import java.awt.Font;  
  5. import java.awt.Graphics2D;  
  6. import java.awt.Image;  
  7. import java.awt.image.BufferedImage;  
  8. import java.io.FileOutputStream;  
  9.  
  10. import javax.swing.ImageIcon;  
  11.  
  12. import com.sun.image.codec.jpeg.JPEGCodec;  
  13. import com.sun.image.codec.jpeg.JPEGEncodeParam;  
  14. import com.sun.image.codec.jpeg.JPEGImageEncoder;  
  15. /**  
  16.  * 给图片加水印  
  17.  * @author sucre  
  18.  *  
  19.  */ 
  20. public class ProductWaterMark {  
  21.     public boolean createMark(String filePath, String markContent,  
  22.             Color markContentColor, float qualNum, String watermark) {  
  23.         ImageIcon imgIcon = new ImageIcon(filePath);  
  24.         Image theImg = imgIcon.getImage();  
  25.         int width = theImg.getWidth(null);  
  26.         int height = theImg.getHeight(null);  
  27.         BufferedImage bimage = new BufferedImage(width, height,  
  28.                 BufferedImage.TYPE_INT_RGB);  
  29.         Font font = new Font("新宋体", Font.PLAIN, 50);//这里控制图片上文字的大小  
  30.         Graphics2D g = bimage.createGraphics();  
  31.         g.setColor(markContentColor);  
  32.         g.setFont(font);  
  33.         g.setBackground(Color.white);  
  34.         g.drawImage(theImg, 00null);  
  35.         //添加水印的文字和设置水印文字出现的内容  
  36.         g.drawString(markContent, width - 800, height - 80);   
  37.         g.dispose();  
  38.         try {  
  39.             FileOutputStream out = new FileOutputStream(filePath);  
  40.             JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);  
  41.             JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bimage);  
  42.             param.setQuality(qualNum, true);  
  43.             encoder.encode(bimage, param);  
  44.             out.close();  
  45.         } catch (Exception e)  
  46.         {  
  47.             return false;  
  48.         }  
  49.         return true;  
  50.     }  
  51.  
  52.     public static void main(String arg[]) {  
  53.         ProductWaterMark wk = new ProductWaterMark();  
  54.         boolean successOrNot = wk.createMark("F:\\我的图片\\1.jpg","http://sucre.blog.51cto.com", Color.BLACK, 23f, "");  
  55.         System.out.println(successOrNot?"You are Success!":"You are Failure");  
  56.     }  
  57. }  

无水印的图

 

加水印后的图片

 

看到了吧,图片的最小方有一行大黑字,虽然没有博客系统加的好看,但是我觉得还行。



本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/416185,如需转载请自行联系原作者


相关文章
|
11月前
|
编解码 开发工具 Android开发
.9图片的那点事儿
.9图片的那点事儿
146 0
|
编解码 数据安全/隐私保护 开发者
为视频添加水印 | 学习笔记
快速学习为视频添加水印
483 0
|
Linux 数据安全/隐私保护 Windows
Stegosuite,图片隐写术
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396511 ...
1346 0
|
缓存 Java 数据安全/隐私保护
给图片加水印?这是我见过最简单的实现方式
大家好,我是指北君。 在项目中经常有需要在图片上添加水印的需求以及在某些场合下需要身份证图片,这时就可以对身份证上加水印防止被用于其他用途,java 在处理图片水印时不需要额外的第三方包,使用 BufferedImage 和 Graphics2D 就可以搞定
给图片加水印?这是我见过最简单的实现方式
|
安全 数据安全/隐私保护
|
缓存 Android开发
图片
●图片加载,缓存,处理 Picasso (一个强大的图片下载与缓存的库) Fresco (一个用于管理图像和他们使用的内存的库) Glide (一个图片加载和缓存的库,使用的App有:网易新闻) Picasso-transformations (...
1338 0
|
C# 图形学 数据安全/隐私保护
|
数据安全/隐私保护