Простой способ удаления кеинга с изображения Java - PullRequest
0 голосов
/ 05 февраля 2020

Есть ли какой-нибудь простой способ удалить кеинга с изображения с помощью java? Я пытался прочитать об openCV, и это трудно изучить и использовать.

1 Ответ

0 голосов
/ 05 февраля 2020

Самым простым решением было бы сделать манипулирование Pixel by Pixel. Для этого вам понадобится изображение с альфа-каналом. Передайте TYPE_INT_ARGB в конструктор BufferedImage после ширины и высоты.

Затем скопируйте в два вложенных for Переходите каждый пиксель к новому изображению следующим образом:

BufferedImage newImg = new BufferedImage(origImg.getWidth(), origImg.getHeight(), BufferedImage.TYPE_INT_ARGB);
Color background = new Color(0,0,0,0); //RGBA
for (int x = 0; x < origImg.getWidth(); x++) {          
   for (int y=0; y < origImg.getHeight(); y++) {
      Color newColor = new Color(origImg.getRGB(x, y) | 0xff000000, true);

      if(/*check for chromakey color*/)
        newImg.setRGB(x, y, background.getRGB())
      else
        newImg.setRGB(x, y, newColor.getRGB());            
   }      
}

This предполагается, что у вас нет альфа-компонента в исходном изображении, потому что он будет перезаписан |0xff000000 с 255.

...