Hallo,
ich möchte über ein Bild einen Farblayer legen. Natrülich programmatisch, sonst würe ich auch in einem Photoshopforum fragen
Das ganze passiert in SWT. Das ist aber eigentlich egal, denn meine Frage ist SEHR grundsätzlicher Natur. Ich kann bereits auf jeden Pixel einer Grafik zugreifen, nur auch auch dessen rot, grüen und blau Wert richtig auszulesen funktioniert noch nciht so gut ...Am besten erstmal der bestehende Code:
Das Problem ist, dass der neu Berechnete Wert immer schwarz ist. (Ausser die Farbe ist fast oder ganz weiß, siehe Code)
Ich muss also wissen, wie ich einen Farbwert richtig auslesen , und im Anschluss den neu berechneten wieder einfügen kann.
Weiß jemand wie das geht?
Danke
ich möchte über ein Bild einen Farblayer legen. Natrülich programmatisch, sonst würe ich auch in einem Photoshopforum fragen
Das ganze passiert in SWT. Das ist aber eigentlich egal, denn meine Frage ist SEHR grundsätzlicher Natur. Ich kann bereits auf jeden Pixel einer Grafik zugreifen, nur auch auch dessen rot, grüen und blau Wert richtig auszulesen funktioniert noch nciht so gut ...Am besten erstmal der bestehende Code:
Code:
private void colorize() {
ImageData ideaImageData = imageDesciptor.getImageData();
// Die Layer Farbwerte (alles sollte ersteinmal beimalten bleiben)
int redShift = 0;
int greenShift = 0;
int blueShift = 0;
int[] lineData = new int[ideaImageData.width];
for (int y = 0; y < ideaImageData.height; y++) {
ideaImageData.getPixels(0, y, ideaImageData.width, lineData, 0);
// Analyze each pixel value in the line
for (int x = 0; x < lineData.length; x++) {
// Extract the red, green and blue component
int pixelValue = lineData[x];
int r = pixelValue & redShift;
int g = (pixelValue & greenShift) >> 8;
int b = (pixelValue & blueShift) >> 16;
// weiß oder fast weiß auf ganz weiß setzen ;)
if (r > 230 && g > 230 && b > 150) {
ideaImageData.setPixel(x, y, 0xFFFFFF);
} else {
// ------------> hier soll der neue Wert hin
ideaImageData.setPixel(x, y, ???);
}
}
}
// SWT ImageDescriptor erstellen
Image image = new Image(null, ideaImageData);
imageDesciptor = ImageDescriptor.createFromImage(image);
}
Ich muss also wissen, wie ich einen Farbwert richtig auslesen , und im Anschluss den neu berechneten wieder einfügen kann.
Weiß jemand wie das geht?
Danke