博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java编写(模仿51CTO 给图片加上水印)--原创
阅读量:6719 次
发布时间:2019-06-25

本文共 1976 字,大约阅读时间需要 6 分钟。

代码很简单,没有什么新意!就是利用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程序员联盟 欢迎大家的加入!

本文转自 小夜的传说 51CTO博客,原文链接:http://blog.51cto.com/1936625305/1282136,如需转载请自行联系原作者
你可能感兴趣的文章
Jmeter JDBC请求---把数据库结果参数化传递到其他请求
查看>>
bzoj 1433: [ZJOI2009]假期的宿舍 最大流
查看>>
常用下载地址
查看>>
指针知识(八):函数指针
查看>>
汇编语言入门
查看>>
java,c#,php类与继承简单比较
查看>>
虚拟机下Ubuntu共享文件夹不能显示的一种解决方法
查看>>
xuezhan.org 6.25
查看>>
OpenResty和Resis一些基本的性能配置
查看>>
三星安装JAVA游戏
查看>>
2016y8m16d
查看>>
2016y9m5d
查看>>
java中this语句来调用其他构造方法的规则
查看>>
莎士比亚十四行诗29赏析
查看>>
Python并发编程之多进程(实战)
查看>>
[原创]关于easyui下datagrid表格控件分页控制(非url方式)
查看>>
数值优化 - 牛顿法
查看>>
python编码问题总结
查看>>
DateTimeUtil 工具类,android 和 java 通用
查看>>
Flipkart: 携手 Android Go 拥抱印度市场
查看>>