Ich schreibe ein Programm, das es dem Benutzer ermöglicht, 2 Fotos zu vergleichen, eines als Farbmuster und das andere zur Bearbeitung. Ich werde Pixel-Informationen aus dem ersten sammeln und dann die folgende Methode anwenden, um das zweite zu bearbeiten.
Das Ergebnis ist ein Foto: http://www.flickr.com/photos/92325795@N02/8392038944/in/photostream
Mein Foto wird aktualisiert und trotz der Qualität / Rauschen / Farbe, aber es gibt die seltsamen Farben hier und da. Hat jemand eine Idee, was ich tun sollte, um es zu entfernen? Oder noch besser die Methode verbessern, die ich verwende? Hier ist der Code:
Die Eingabe ist die zu bearbeitende Bitmap, inColor ist die Farbe der Nase auf dem zu bearbeitenden Foto, reqcolor ist die Farbe meiner Nase auf dem Beispiel-/Optimalfoto.
public Bitmap shiftRGB(Bitmap input, int inColor, int reqColor){
int deltaR = Color.red(reqColor) - Color.red(inColor);
int deltaG = Color.green(reqColor) - Color.green(inColor);
int deltaB = Color.blue(reqColor) - Color.blue(inColor);
//--how many pixels ? --
int w = input.getWidth();
int h = input.getHeight();
//-- change em all! --
for (int i = 0 ; i < w; i++){
for (int j = 0 ; j < h ; j++ ){
int pixColor = input.getPixel(i,j);
//-- colors now ? --
int inR = Color.red(pixColor);
int inG = Color.green(pixColor);
int inB = Color.blue(pixColor);
if(inR > 255){ inR = 255;}
if(inG > 255){ inG = 255;}
if(inB > 255){ inB = 255;}
if(inR < 0){ inR = 0;}
if(inG < 0){ inG = 0;}
if(inB < 0){ inB = 0;}
//-- colors then --
input.setPixel(i,j,Color.argb(255,inR + deltaR,inG + deltaG,inB + deltaB));
}
}
return input;
} Vielen Dank, dass Sie mir geholfen haben! Ich kann meine Dankbarkeit nicht weiter ausdrücken als ein weiteres Dankeschön im Voraus zu sagen!