2011-02-02 58 views
0

我被分配了一个任务来构建一个简单的xpm图像查看器。我无法为此使用任何现有的工具箱库。 我知道XPM图像是字符串数组像这样(我可以写一个) -如何读取一个简单的xpm图像并使用Java显示它?

/* XPM */ 
static const char *const hi[] = { 
"7 5 2 1", 
" c black", 
". c yellow", 

".. ..", 
". . . .", 
". . .", 
".  .", 
".  ." 
}; 

我想用java这一点。我的问题是 -
1.如何从这个xpm文件创建一个字符串变量(hi []),以便我可以在我的主类中使用它?
2.在GUI中显示它的好方法?
3.任何其他听写......

非常感谢您的帮助

+0

看起来像C/C++代码,或者我完全关闭。 – 2011-02-02 18:52:59

+0

请告诉我在C/C++?我会尝试从中推断出一些东西。 – ruben 2011-02-02 20:06:40

+0

我想你误解了我的意思。这种文件格式只不过是C编程语言中的一个String数组,这表明您可能希望在C语言中进行编码(这是一种多年前使用过的语言)。 – 2011-02-02 20:31:21

回答

2

您必须首先编写一个解析器 - 一个程序/方法/类/无论是线性读取此文件并提取必要的数据。

BufferedReader r = 
    new BufferedReader(new InputStreamReader(new FileInputStream(file), 
              "US-ASCII")); 

给你一个BufferedReader,它有一个readLine()方法。 您首先丢弃或处理的一些线条,然后主线是真正的图像数据。在那里你扔掉引号和逗号,并以字符串形式存在明文数据。

要将它放在图像中,请查看java.awt.image中的类 - 特别是BufferedImage及其使用的类(Raster/WriteableRaster,IndexColorModel)。

相反,您也可以简单地将数据保存在String []表单中,并在自定义组件的paint-method中访问各个像素。我想这会慢一点。

相关问题