gpt4 book ai didi

java - 如何将ImageIcon的黑色像素更改为白色像素?

转载 作者:行者123 更新时间:2023-12-01 12:09:46 25 4
gpt4 key购买 nike

我知道我可以在照片处理软件中更改它,但我想学习以编程方式执行此操作,以便我可以将其更改为我想要的任何颜色。

<小时/>

首先,我想说,我一直在寻找解决方案大约两个小时,但找不到适合我的解决方案,也找不到解决我的具体问题的解决方案。

我从互联网上下载了一些图标,它们最初是黑色的,背景透明,这对于菜单栏和其他东西很有用。但是,它们在我的工具栏上很难注意到,我想将这些图标上的黑色更改为白色。这是an edited screenshot of what I'm trying to achieve这是a screenshot of what I achieve 。 (抱歉链接,我需要至少 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());
}
}

我不确定您是否需要资源加载类代码,但我认为它只能帮助您完全理解我的问题,并能够尽您所能帮助我。所以,这是我的 Resources 类代码片段:

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;
}

如果互联网上确实有解决方案,但我找不到它,我深表歉意。嗯,仅此而已。我想我已经足够具体了。

提前谢谢您!

最佳答案

有两种常见方法:

  • 根据需要使用 getRGB()setRGB() 循环访问 BufferedImage,对于 example .

  • 使用LookupOp ,如引用的示例 here 所示.

关于java - 如何将ImageIcon的黑色像素更改为白色像素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27334429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com