我正在使用24x24像素图标。我希望能够将此图标中的特定颜色更改为不同的颜色。例如,将白色区域变成红色。更改ImageIcon中的特定颜色
2
A
回答
3
我不知道这样做的API方法。并且默认情况下,Images
不可写。但是,如果你有一个BufferedImage
,你可以做这样的:
public void changeColor(BufferedImage img, Color old, Color new) {
final int oldRGB = old.getRGB();
final int newRGB = new.getRGB();
for (int x = 0; x < img.getWidth(); x++) {
for (int y = 0; y < img.getHeight(); y++) {
if (img.getRGB(x, y) == oldRGB)
img.setRGB(x, y, newRGB);
}
}
}
这不是最有效的方式做到这一点(这是可能的RGB数据读取到一个数组,而不是一个像素的同时) ,但对于24x24的图像,它不应该是一个问题。
1
您可以使用BufferedImage做到这一点。看看Java Image I/O documentation。
相关问题
- 1. 更改图像中的特定颜色
- 2. 更改特定字符串的颜色
- 3. 更改特定的行颜色uipicker
- 4. 更改特定图标的颜色NavigationDrawer
- 5. 更改特定行的颜色(TELERIK)
- 6. 更改特定单词的颜色
- 7. jQuery:更改特定的文本颜色
- 8. 如何更改特定JButton的颜色
- 9. 动态更改特定颜色
- 10. 在特定时间后更改颜色
- 11. C#更改背景颜色特定行
- 12. 使用RGB将UIStatusBar颜色更改为特定颜色?
- 13. 更改PowerPoint中表格中特定值的颜色
- 14. 在wx.Choice中更改列表中特定值的颜色
- 15. 如何更改PhpStorm中的特定关键字的颜色?
- 16. 如何将特定的RGB颜色更改为PDF文件中的特定CMYK颜色?
- 17. 如何更改RichTextBox中特定行的背景颜色?
- 18. 如何更改标签中特定单词的颜色 - Swift 3
- 19. 如何在git中更改特定的字体颜色?
- 20. 用jquery更改特定html页面中的背景颜色
- 21. 更改字符串中特定单词的颜色
- 22. 更改java中的特定文本颜色
- 23. 是否可以更改gridview中特定单元格的颜色?
- 24. 如何更改直方图中特定仓的颜色?
- 25. 更改datagrid中特定单元格的颜色?
- 26. 更改特定dxStatusBar1.Panel中文本的颜色
- 27. 更改HTML/CSS中特定字母的颜色
- 28. 如何在Microsoft Excel中更改特定字符的颜色
- 29. 更改xcode中特定代码字的颜色
- 30. 更改表格中特定索引的颜色