您好 我有一个大小为640 * 480像素的图像数据,数据格式为0s和1s,在txt文件中。因此,文本文件中有640 * 480 = 307200个字符(0和1)。问题是0表示原始图像中没有任何内容(比如黑色背景),1表示存在(例如用户站立且与用户blob有关),因此不要误用RGB或字节数据
我需要读取并将其转换为java中大小为640 * 480像素的图像,其中0表示的像素可以设置为一种颜色(比如黑色),1可以设置为其他颜色(比如白色)。
我该怎么做???谢谢你的帮助。
答案 0 :(得分:4)
首先,你需要阅读它。如果你知道它的宽度,你可以这样做:
BufferedReader in = new BufferedReader(new FileReader("myfile.txt"));
boolean[][] mask = new boolean[640][480];
int i = -1;
int count = 0;
while((i = in.read()) !- -1) {
int x = count % 640;
int y = count / 640;
mask[x][y] = (i == '1');
count++;
}
然后你可以这样画画
paint(Graphics g) {
g.setColor(Color.BLACK);
g.drawRect(0,0,640,480); // draw the black background
// mask it with white
g.setColor(Color.WHITE);
for(int x = 0; x < 640); x++) {
for(int y = 0; y < 480); y++) {
if(mask[x][y]) g.drawRect(x,y,1,1);
}
}
}