Я пытаюсь сохранить изображение PNG с альфа-каналом, но после некоторой пиксельной манипуляции и сохранения его, альфа-канал вернулся к 255 на каждый пиксель. вот мой код:
Первые манипуляции с пикселями:
public BufferedImage apply(BufferedImage image) {
int pixel;
for (int y = 0; y < image.getHeight(); y++) {
for (int x = 0; x < image.getWidth(); x++) {
pixel = image.getRGB(x, y);
if (threshold < getAverageRGBfromPixel(pixel)) {
image.setRGB(x, y, new Color(0f, 0f, 0f, 0f).getRGB());
}
}
}
return image;
}
ПРИМЕЧАНИЕ: пиксель, который должен быть прозрачным, является черным, поэтому я определенно ударил их.
и вот код для сохранения.
@Test
public void testGrayscaleFilter() {
ThresholdFilter thresholdFilter = new ThresholdFilter();
testImage = thresholdFilter.apply(testImage);
File outputFile = new File(TEST_DIR + "/testGrayPicture" + ".png");
try {
// retrieve image
ImageIO.write(testImage, "png", outputFile);
} catch (IOException e) {
}
Может кто-нибудь сказать мне, что я делаю не так?