Java编写(模仿51CTO 给图片加上水印)--原创

简介:

代码很简单,没有什么新意!就是利用JDK做的简单绘图和变换!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package  com.oracle.day16;
import  java.awt.Color;
import  java.awt.Font;
import  java.awt.Graphics2D;
import  java.awt.RenderingHints;
import  java.awt.font.FontRenderContext;
import  java.awt.geom.Rectangle2D;
import  java.awt.image.BufferedImage;
import  java.io.File;
import  java.io.IOException;
import  javax.imageio.ImageIO;
/**
  *
  *@author huyongjian Oracle(Compus Solution Group)
  * @Date  2013-8-16
  * @version 2.0
  * @since JDK1.6(建议)
    Copy Right Information    COMPUS SOLUTION GROUP
    IDE:Eclipse
    class:
    打印生成jpg图片生成文字水印
       JDK2D02
  */
public  class  TestJdk2D02 {
     public  String create(String str,String filePath,
             int  width, int  height){
         String fileName=System.currentTimeMillis()+ ".jpg" ;
         String path=filePath+ "/" +fileName;
         File file= new  File(path);
         BufferedImage bi= new  BufferedImage(width,height,
                 BufferedImage.TYPE_INT_RGB);
         Graphics2D g2=(Graphics2D) bi.getGraphics();
         g2.setColor.WHITE);
          g2.clearRect( 0 0 , width, height);
         Font font= new  Font( "黑体" ,Font.BOLD, 25 );
         g2.setFont(font);
         g2.setPaint(Color.RED);
         FontRenderContext context=g2.getFontRenderContext();
         Rectangle2D bounds=font.getStringBounds(str, context);
         double  x=(width-bounds.getWidth())/ 2 ;
         double  y=(height-bounds.getHeight())/ 2 ;
         double  ascent=-bounds.getY();
         double  baseY=y+ascent;
                                       
         g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
                 RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
         g2.drawString(str, ( int )x, ( int )baseY);
         try  {
             ImageIO.write(bi,  "jpg" , file);
         catch  (IOException e) {
             e.printStackTrace();
         }
         return  file.getPath();
     }
     public  static  void  main(String[] args) {
         TestJdk2D02 t=   new  TestJdk2D02();
         System.out.println(t.create( "小夜的传说" , "c:/" , 500 , 38 ));
     }
}

运行之后在您的C盘中可以查看生成图片的水印!

群号:1936625305 Java程序员联盟 欢迎大家的加入!

173223831.jpg










本文转自 小夜的传说 51CTO博客,原文链接:http://blog.51cto.com/1936625305/1282136,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
Java
java通过commons-fileupload实现多张图片的上传(servlet)
java通过commons-fileupload实现多张图片的上传(servlet)
23 2
|
1月前
|
存储 Java 计算机视觉
Java代码居然可以做出如此高级的图片编辑系统
Java代码居然可以做出如此高级的图片编辑系统
29 0
|
1月前
|
前端开发 Java
java通过commons-fileupload实现多张图片的上传(jsp页面)
java通过commons-fileupload实现多张图片的上传(jsp页面)
16 2
|
4月前
|
Java Linux Windows
java 图片上绘制文字Graphics2D linux 中文乱码
java 图片上绘制文字Graphics2D linux 中文乱码
|
7月前
|
Java
Java实现图片转化为pdf
Java实现图片转化为pdf
278 0
|
9月前
|
Java
Java实现图片格式转换(通过ImageIO)
Java实现图片格式转换(通过ImageIO)
389 0
|
1月前
|
Java
java中复制图片
java中复制图片
10 2
|
1月前
|
存储 Java Apache
java 读取图片成二进制流
【2月更文挑战第10天】
|
2月前
|
文字识别 Java
Java使用Tess4j识别图片里的文字
Java使用Tess4j识别图片里的文字
|
2月前
|
Java
Java中把word转换成图片
Java中把word转换成图片
76 0