Topic: 如何將字符以特定屬性保存輸出到圖片文件中

  Print this page

1.如何將字符以特定屬性保存輸出到圖片文件中 Copy to clipboard
Posted by: chshengsha
Posted on: 2007-08-10 12:32

學習JAVA語言不到三個月,可能我比較蠢,一直沒有進步。
對於字符輸出到文件,通過參考資料和自己嘗試,我是基本掌握了;
但對於圖像輸出到文件,我還是頭一次接觸,不知從何入手,特此向諸位請教。

具體來講,我想寫一個能實現如下基本功能的代碼:
字符:「字」;
字體:細明體;
字形:粗體;
大小:20;
顏色:白色;
圖片格式:BMP/JPG/PNG/GIF(其中之一);
圖片寬度:40;
圖片高度:40;
圖片底色:黑色;
字符在圖片位置為居中;
輸出的圖片是一個完整的文件(可讀寫),也就是說可以用相關的工具來查看和輯,而非以Applet的形式顯示。

請精於此類編程的朋友指點,或提供實現此類功能的相關代碼以作參考,謝謝!

2.Re:如何將字符以特定屬性保存輸出到圖片文件中 [Re: chshengsha] Copy to clipboard
Posted by: Cappuccino
Posted on: 2007-08-10 14:35

单纯的IO操作还是要牵扯到图形学的?后者就帮不上忙了=_=#

3.Re:如何將字符以特定屬性保存輸出到圖片文件中 [Re: chshengsha] Copy to clipboard
Posted by: chshengsha
Posted on: 2007-08-10 16:05

那麼...
就從簡化一下...
如何直接輸出一個圖像文件呢...
比如直接輸出一個:
20×20像素的黑色底色的位圖...
再次強調不是顯示出來...
而是以文檔的形式輸出...
是一個看得見可編輯的圖像文件哦...
謝謝...

4.Re:如何將字符以特定屬性保存輸出到圖片文件中 [Re: chshengsha] Copy to clipboard
Posted by: xuxiaolei
Posted on: 2007-08-13 18:54


import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import java.awt.font.*;
import java.awt.geom.*;

public class CreateImage
{
public static void main(String[] args) throws Exception
{
int width = 100;
int height = 100;
String s = "你好";

File file = new File("c:/image.jpg");

Font font = new Font("Serif", Font.BOLD, 10);
BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = (Graphics2D)bi.getGraphics();
g2.setBackground(Color.WHITE);
g2.clearRect(0, 0, width, height);
g2.setPaint(Color.RED);

FontRenderContext context = g2.getFontRenderContext();
Rectangle2D bounds = font.getStringBounds(s, context);
double x = (width - bounds.getWidth()) / 2;
double y = (height - bounds.getHeight()) / 2;
double ascent = -bounds.getY();
double baseY = y + ascent;

g2.drawString(s, (int)x, (int)baseY);

ImageIO.write(bi, "jpg", file);
}
}


5.Re:如何將字符以特定屬性保存輸出到圖片文件中 [Re: chshengsha] Copy to clipboard
Posted by: xuxiaolei
Posted on: 2007-08-13 19:18

希望斑竹给我加分啊

6.Re:如何將字符以特定屬性保存輸出到圖片文件中 [Re: chshengsha] Copy to clipboard
Posted by: JiafanZhou
Posted on: 2007-08-15 00:06

看到这么棒的帖子,我想给你加阿,可惜不是斑竹呢。


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923