Ожидаемый результат моего кода (как показано ниже):Неудачная попытка изменить значение альфа пикселей BufferedImage
до того 255
после 0
Но фактический выпуск:
до того 255
после 255
Я ожидаю, что после того, как будет что-то другое, чем 255, потому что я пытался явно установить нижний бит пикселей 0. Надеясь анализ того, что может не работать.
File fimin = new File("C:\\sample.png");
BufferedImage img = null;
img = ImageIO.read(fimin);
int width = img.getWidth();
int height = img.getHeight();
int val, alpha;
System.out.println("before" + (((img.getRGB(0, 0)) >> 24) & 0xff));
for(int i = 0; i < width; i++) {
for(int j = 0; j < height; j++) {
val = 0;
val = img.getRGB(i, j);
val &= 0xfeffffff;//set lower bit ofalpha to zero
img.setRGB(i, j, val);
}
}
System.out.println("after" + (((img.getRGB(0, 0)) >> 24) & 0xff));
Иногда я не должен быть рядом с компьютерами:} – user2864740
Какой смысл устанавливать 'val' в 0 каждый раз? – shmosel
Привет Сай, чтобы помочь @gpasch помочь, если его ответ поможет вам, пожалуйста, нажмите стрелку вверх, чтобы «поднять» свой ответ, и нажмите √ рядом с ним, чтобы показать, что это «принятый ответ» (ответ, который работает для вы), и если вы считаете, что мой вклад был хорошим, пожалуйста, подтвердите свой ответ. Вот как работает этот сайт, чтобы помочь друг другу продвинуться вперед и добиться прогресса. – clearlight