代碼很簡單,沒有什麼新意!就是利用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
<code>package</code> <code>com.oracle.day16;</code>
<code>import</code> <code>java.awt.Color;</code>
<code>import</code> <code>java.awt.Font;</code>
<code>import</code> <code>java.awt.Graphics2D;</code>
<code>import</code> <code>java.awt.RenderingHints;</code>
<code>import</code> <code>java.awt.font.FontRenderContext;</code>
<code>import</code> <code>java.awt.geom.Rectangle2D;</code>
<code>import</code> <code>java.awt.image.BufferedImage;</code>
<code>import</code> <code>java.io.File;</code>
<code>import</code> <code>java.io.IOException;</code>
<code>import</code> <code>javax.imageio.ImageIO;</code>
<code>/**</code>
<code> </code><code>*</code>
<code> </code><code>*@author huyongjian Oracle(Compus Solution Group)</code>
<code> </code><code>* @Date 2013-8-16</code>
<code> </code><code>* @version 2.0</code>
<code> </code><code>* @since JDK1.6(建議)</code>
<code> </code><code>Copy Right Information COMPUS SOLUTION GROUP</code>
<code> </code><code>IDE:Eclipse</code>
<code> </code><code>class:</code>
<code> </code><code>列印生成jpg圖檔生成文字水印</code>
<code> </code><code>JDK2D02</code>
<code> </code><code>*/</code>
<code>public</code> <code>class</code> <code>TestJdk2D02 {</code>
<code> </code><code>public</code> <code>String create(String str,String filePath,</code>
<code> </code><code>int</code> <code>width,</code><code>int</code> <code>height){</code>
<code> </code><code>String fileName=System.currentTimeMillis()+</code><code>".jpg"</code><code>;</code>
<code> </code><code>String path=filePath+</code><code>"/"</code><code>+fileName;</code>
<code> </code><code>File file=</code><code>new</code> <code>File(path);</code>
<code> </code><code>BufferedImage bi=</code><code>new</code> <code>BufferedImage(width,height,</code>
<code> </code><code>BufferedImage.TYPE_INT_RGB);</code>
<code> </code><code>Graphics2D g2=(Graphics2D) bi.getGraphics();</code>
<code> </code><code>g2.setColor.WHITE);</code>
<code> </code><code>g2.clearRect(</code><code>0</code><code>, </code><code>0</code><code>, width, height);</code>
<code> </code><code>Font font=</code><code>new</code> <code>Font(</code><code>"黑體"</code><code>,Font.BOLD,</code><code>25</code><code>);</code>
<code> </code><code>g2.setFont(font);</code>
<code> </code><code>g2.setPaint(Color.RED);</code>
<code> </code><code>FontRenderContext context=g2.getFontRenderContext();</code>
<code> </code><code>Rectangle2D bounds=font.getStringBounds(str, context);</code>
<code> </code><code>double</code> <code>x=(width-bounds.getWidth())/</code><code>2</code><code>;</code>
<code> </code><code>double</code> <code>y=(height-bounds.getHeight())/</code><code>2</code><code>;</code>
<code> </code><code>double</code> <code>ascent=-bounds.getY();</code>
<code> </code><code>double</code> <code>baseY=y+ascent;</code>
<code> </code>
<code> </code><code>g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,</code>
<code> </code><code>RenderingHints.VALUE_TEXT_ANTIALIAS_ON);</code>
<code> </code><code>g2.drawString(str, (</code><code>int</code><code>)x, (</code><code>int</code><code>)baseY);</code>
<code> </code><code>try</code> <code>{</code>
<code> </code><code>ImageIO.write(bi, </code><code>"jpg"</code><code>, file);</code>
<code> </code><code>} </code><code>catch</code> <code>(IOException e) {</code>
<code> </code><code>e.printStackTrace();</code>
<code> </code><code>}</code>
<code> </code><code>return</code> <code>file.getPath();</code>
<code> </code><code>}</code>
<code> </code><code>public</code> <code>static</code> <code>void</code> <code>main(String[] args) {</code>
<code> </code><code>TestJdk2D02 t= </code><code>new</code> <code>TestJdk2D02();</code>
<code> </code><code>System.out.println(t.create(</code><code>"小夜的傳說"</code><code>,</code><code>"c:/"</code><code>,</code><code>500</code><code>,</code><code>38</code><code>));</code>
<code>}</code>
運作之後在您的C槽中可以檢視生成圖檔的水印!
群号:1936625305 Java程式員聯盟 歡迎大家的加入!
<a target="_blank" href="http://blog.51cto.com/attachment/201308/173223831.jpg"></a>
本文轉自 小夜的傳說 51CTO部落格,原文連結:http://blog.51cto.com/1936625305/1282136,如需轉載請自行聯系原作者