Java 如何更改ImageIcon';从黑色像素到白色像素?
我知道我可以在一个照片处理软件中更改它,但我想学习编程,这样我就可以将它更改为我想要的任何颜色Java 如何更改ImageIcon';从黑色像素到白色像素?,java,image,swing,colors,bufferedimage,Java,Image,Swing,Colors,Bufferedimage,我知道我可以在一个照片处理软件中更改它,但我想学习编程,这样我就可以将它更改为我想要的任何颜色 首先,我想说的是,我一直在寻找大约两个小时的解决方案,但我找不到一个适合我的解决方案,也找不到一个能解决我确切问题的解决方案 我从互联网上下载了一些图标,它们原本是黑色的,背景透明,这对菜单栏和其他东西很有用。但是,它们在我的工具栏上很难被注意到,我想把这些图标上的黑色改成白色。这是,这是。(抱歉链接,我需要至少10个声誉来发布图片。) 下面是我的实用程序类,它负责失败的工作: public fin
首先,我想说的是,我一直在寻找大约两个小时的解决方案,但我找不到一个适合我的解决方案,也找不到一个能解决我确切问题的解决方案 我从互联网上下载了一些图标,它们原本是黑色的,背景透明,这对菜单栏和其他东西很有用。但是,它们在我的工具栏上很难被注意到,我想把这些图标上的黑色改成白色。这是,这是。(抱歉链接,我需要至少10个声誉来发布图片。) 下面是我的实用程序类,它负责失败的工作:
public final class Utility{
public static ImageIcon replaceIconColor(ImageIcon icon, Color oldColor, Color newColor){
BufferedImage image = iconToImage(icon);
for(int y = 0; y < image.getHeight(); y++){
for(int x = 0; x < image.getWidth(); x++){
Color pixel = new Color(image.getRGB(x, y));
if((pixel.getRed() == oldColor.getRed()) && (pixel.getGreen() == oldColor.getGreen()) && (pixel.getBlue() == oldColor.getBlue()) && (pixel.getAlpha() == oldColor.getAlpha())){
image.setRGB(x, y, newColor.getRGB());
}
}
}
return new ImageIcon(image);
}
public static BufferedImage iconToImage(ImageIcon icon){
return Resources.loadImage(icon.getDescription());
}
}
我很抱歉,如果互联网上真的有这样的解决方案,但我找不到。好了,就这些。我想我已经够具体的了
提前感谢您两种方法很常见:
- 根据需要,使用
和getRGB()
循环浏览setRGB()
,以执行以下操作buffereImage
- 如引用的示例所示,请使用a
public static ImageIcon loadImageIcon(String fileName){
URL imageURL = Resources.class.getResource("/Resources/Images/" + fileName);
ImageIcon imageIcon = new ImageIcon(imageURL);
imageIcon.setDescription(fileName);
return imageIcon;
}
public static BufferedImage loadImage(String fileName){
URL imageURL = Resources.class.getResource("/Resources/Images/" + fileName);
BufferedImage image = null;
try{
image = ImageIO.read(imageURL);
}catch(IOException e){
e.printStackTrace();
}
return image;
}