0
我試圖製作一個程序,允許我更改圖像的顏色,通過一個界面可以選擇一種顏色,然後單擊圖像選擇要替換的顏色在界面中選擇的那個,但問題是:更改圖像上的顏色
我需要更改transformPoint方法遞歸填充類似於所選像素的圖像像素。點擊發生的像素是參考像素,tramsformImage2中的clickedPoint,paint的顏色是paintColor。 transformPoint方法必須繪製點,如果它與參考像素的顏色類似,然後將它們的繪製點發送到北,南,北和西,則使用遞歸方法調用它本身(如果有)。
因爲每個方法調用堆棧都需要這種轉換圖像的方法,因此對於那些像素比你現有的堆棧更需要的區域是不可行的。
public void transformImage2(Point clickedPoint, Color paintColor) {
// desprezar o canal Alpha (transparÍncia) em todas as cores utilizadas
int paintColorRGB = clearAlphaChannel(paintColor.getRGB());
int deltaWidth = (imageWidth - label.getWidth())/2;
int deltaHeight = (imageHeight - label.getHeight())/2;
int x = clickedPoint.x + deltaWidth;
int y = clickedPoint.y + deltaHeight;
transformPoint(x, y, getPixelColor(clickedPoint), paintColorRGB);
}
private int getPixelColor(Point clickedPoint) {
// desprezar o canal Alpha (transparÍncia) em todas as cores utilizadas
int pixelColor = clearAlphaChannel(image.getRGB(clickedPoint.x,
clickedPoint.y));
return pixelColor;
}
private void transformPoint(int x, int y, int refColor, int paintColorRGB) {
// desprezar o canal Alpha (transparÍncia) em todas as cores utilizadas
int pixelRGB = clearAlphaChannel(image.getRGB(x, y));
// TODO ...
image.setRGB(x, y, paintColorRGB);
// TODO ...
}