Получение различных значений пикселей из getRGB после сохранения изображения.
Код указан ниже.
public BufferedImage formImage(List<Integer> l, int w, int len)
{
// l = list of zeros and ones
BufferedImage dst = new BufferedImage(w, len,
BufferedImage.TYPE_4BYTE_ABGR);
dst.getGraphics().drawImage(img, 0, 0, null);
int p = 0;
for (int i = 0, k = 0; i < l.size(); ++k)
{
p = 0;
for (int j = 31; j > -1; --j, ++i)
{
p |= (l.get(i) << j);
}
p_out.add(p);
Color col = new Color(p, true);
dst.setRGB(k % w, k / w, (new Color(col.getRed(), col.getGreen(),
col.getBlue(), col.getAlpha())).getRGB());
p = dst.getRGB(k % w, k / w);
//System.out.println("index = " + k + " val = " + p);
}
return dst;
}
// in main
BufferedImage test = b.formImage(L2, width, height);
try
{
f1 = new
File("E:\\JavaProjects\\BinaryImage\\src\\binaryimage\\out1.bmp");
if (ImageIO.write(test, "BMP", f1))
{
img2 = ImageIO.read(f);
for (y = 0; y < height; ++y)
{
for (x = 0; x < width; ++x)
{
L5.add(img2.getRGB(x, y));
}
}
for (int i = 0; i < width * height; ++i)
{
if (L5.get(i) != p_out.get(i))
System.out.println(L5.get(i) + "!=" + p_out.get(i) + "
index = " + i);
}
}
}
catch(IOException e)
{
System.out.println(e);
}
-2631722! = - индекс 5329294 = 0 -3092231! = - индекс 2631681 = 1 -2697567! = = Индекс 5460897 = 2 -3158018! = - индекс 2697584 = 3 -3421276! = - индекс 5394976 = 4 -3224018 ! = - 3421372 индекс = 5 -4408203! = - 5131908 индекс = 6 -3223980! = - 4408081 индекс = 7 -5592397! = = - 4802928 индекс = 8 -3289830! = - 5592476 индекс = 9 -5921283! = - 4737165 индекс = 10 -3421185! = - 5921335 индекс = 11 -5658265! = - 4605572 индекс = 12 -3421223! = - 5658251 индекс = 13 -5394994! = - 4473949 индекс = 14
Я хочу прочитать те же значения пикселей, которые я вставил в изображение.