我正在编写一个应用程序,用户可以通过选择新颜色来更改屏幕上图像的颜色.我有一个简单的图像 - 只有40x40 - 像这样:

我尝试了很多东西:像素替换,ColorModel,RGBFilter等.我无法想象这个图像的东西.在尝试的过程中,我已经了解了BufferedImage,我可以将.png转换为该格式并显示在屏幕上.我可以使用像素替换将形状转换为实体颜色,但结果非常糟糕.
从我收集的内容来看,我想使用ColorModel或Filter,但我很难过.这是一个简单的应用程序,演示了我的位置.
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class ChangeImageColor {
public static void main(String[] args) {
final ChangeColor cc = new ChangeColor();
java.awt.EventQueue.invokeLater( new Runnable() { @Override
public void run() { cc.setVisible( true ); }}
); // invokeLater
} // main
} // ChangeImageColor
class ChangeColor extends JFrame {
String CHAR_HEAD = "res/images/char/Head.png";
JLabel imageHead = new JLabel( new ImageIcon( CHAR_HEAD …Run Code Online (Sandbox Code Playgroud)