Я пытаюсь скопировать цвета из BufferedImage в другой bufferedImage, а ниже - мой код. Я знаю, что я могу использовать graphics.drawImage, но мне нужно изменить определенные цвета, и именно поэтому я копирую цвета по пикселям вместо того, чтобы просто рисовать изображение поверх другого BufferedImage Однако это не работает. строка «t.setRGB», похоже, не влияет на BufferedImage «t» После сохранения изображения «t» я получаю пустое изображение. Что я сделал не так?JAVA Как скопировать цвета из одного bufferedImage в другой
Еще один вопрос. Как изменить метод «myColor», чтобы использовать значение «alpha»?
import java.io.*;
import java.awt.*;
import java.awt.image.*;
import javax.imageio.*;
public class imgSt{
public static int rgb;
public static int myColor(int r, int g, int b){
rgb= (65536 * r) + (256 * g) + (b);
return rgb;
}
public static void main(String args[]){
try {
BufferedImage img = ImageIO.read(new File("8.jpg"));
BufferedImage t= new BufferedImage(img.getWidth(), img.getHeight(), BufferedImage.TYPE_INT_ARGB);
int clear=0x000000FF;
int color, alpha, r, g, b;
for(int i=0; i<img.getWidth(); ++i){
for(int j=0; j<img.getHeight(); ++j){
color = img.getRGB(i,j);
alpha = (color>>24) & 0xff;
r = (color & 0x00ff0000) >> 16;
g = (color & 0x0000ff00) >> 8;
b = color & 0x000000ff;
t.setRGB(i,j, myColor(r, g, b) );
}
} //for
ImageIO.write(t, "jpg", new File(" sT.jpg"));
} catch (IOException e){ e.printStackTrace(); }
}//main
}//class
Спасибо. Мне жаль, что я так поздно ответил. Мой интернет был вниз. Ваш подход работает, и я также допустил ошибку в сохранении файла, который должен был использовать: ImageIO.write (изображение, «jpg», новый FileOutputStream (fileOutputName)). Вместо этого я использовал новый файл (fileOutputName). Благодаря! –