您的位置:首页 > 编程语言 > Java开发

JAVA给图片加上水印

2015-04-29 20:14 183 查看
import
java.awt.Color;
import
java.awt.Font;
import
java.awt.Graphics;
import
java.awt.Image;
import
java.awt.image.BufferedImage;
import
java.io.File;
import
java.io.FileOutputStream;
import
com.sun.image.codec.jpeg.JPEGCodec;
import
com.sun.image.codec.jpeg.JPEGImageEncoder;
import
javax.imageio.ImageIO;
/**
* 给图片加水印
*/
public
final
class
Main {
public
Main() { 
  
}
/**   
 
* 把图片印刷到图片上
 
*
 
* @param pressImg
 
*  水印文件    
 
* @param targetImg
 
*  目标文件    
 
* @param x
 
* @param y
 
*/
public
final
static
void
pressImage(String pressImg,String targetImg,
   
int
x,
int
y) { 
    
try
{ 
   
File _file =
new
File(targetImg); 
   
Image src = ImageIO.read(_file); 
   
int
wideth = src.getWidth(
null
); 
   
int
height = src.getHeight(
null
); 
   
BufferedImage image =
new
BufferedImage(wideth,height,
 
BufferedImage.TYPE_INT_RGB); 
   
Graphics g = image.createGraphics(); 
   
g.drawImage(src,
0
,
0
,wideth,height,
null
); 
  
   
// 水印文件 
   
File _filebiao =
new
File(pressImg); 
   
Image src_biao = ImageIO.read(_filebiao); 
   
int
wideth_biao = src_biao.getWidth(
null
); 
   
int
height_biao = src_biao.getHeight(
null
); 
   
g.drawImage(src_biao,wideth - wideth_biao - x,height 
 
- height_biao - y,wideth_biao,height_biao,
null
); 
   
g.dispose(); 
   
FileOutputStream out =
new
FileOutputStream(targetImg); 
   
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); 
   
encoder.encode(image); 
   
out.close(); 
    
}
catch
(Exception e) { 
   
e.printStackTrace(); 
    
}
}
  
/**   
 
* 打印文字水印图片
 
*
 
* @param pressText
 
*   --文字    
 
* @param targetImg
 
*   --目标图片    
 
* @param fontName
 
*   --字体名    
 
* @param fontStyle
 
*   --字体样式    
 
* @param color
 
*   --字体颜色    
 
* @param fontSize
 
*   --字体大小    
 
* @param x
 
*   --X偏移量    
 
* @param y
 
*   --Y偏移量    
 
*/
  
public
static
void
pressText(String pressText,String targetImg,
   
String fontName,
int
fontStyle,
int
color,
int
fontSize,
int
x,
   
int
y) { 
    
try
{ 
   
File _file =
new
File(targetImg); 
   
Image src = ImageIO.read(_file); 
   
int
wideth = src.getWidth(
null
); 
   
int
height = src.getHeight(
null
); 
   
BufferedImage image =
new
BufferedImage(wideth,height,
 
BufferedImage.TYPE_INT_RGB); 
   
Graphics g = image.createGraphics(); 
   
g.drawImage(src,
0
,
0
,wideth,height,
null
); 
   
g.setColor(Color.RED); 
   
g.setFont(
new
Font(fontName,fontStyle,fontSize)); 
  
   
g.drawString(pressText,fontSize+x,fontSize 
  
+y); 
   
g.dispose(); 
   
FileOutputStream out =
new
FileOutputStream(targetImg); 
   
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); 
   
encoder.encode(image); 
   
out.close(); 
    
}
catch
(Exception e) { 
   
System.out.println(e); 
    
}
}
  
public
static
void
main(String[] args) { 
    
pressImage(
"f:/1.jpg"
,
"f:/2.jpg"
,
20
,
20
); 
    
pressText(
"Java教程网"
,
"f:/1.jpg"
,
"宋体"
,
10
,
10
,
100
,
50
,
50
);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: