I
ich²
Gast
Hallo Forum,
ich habe mal wieder ein Problem. Ich möchte von einem Bild den Rand wegschneiden. Bevor ich mir jetzt nen Wolf erklär, das Bild schaut ungefähr so aus wie hier:
http://www.java-forum.org/de/viewtopic.php?p=140915&highlight=
Nur soll das nicht automatisch beim Drehen (ich dreh ja gar nicht) passieren, sondern auf Buttondruck. Meine Idee: Auslesen wie viel Platz oben und unten ist, bis der 1. andersfarbige Pixel auftaucht und daraus dann das neue Bild erstellen. Funktioniert nur bis jetzt nicht so ganz.
col ist der RGB-Wert der Farbe. Es wird immer ein Teil vom bild mit abgeschnitten. Weiß jemand woran das liegt?
mfg
ich²
ich habe mal wieder ein Problem. Ich möchte von einem Bild den Rand wegschneiden. Bevor ich mir jetzt nen Wolf erklär, das Bild schaut ungefähr so aus wie hier:
http://www.java-forum.org/de/viewtopic.php?p=140915&highlight=
Nur soll das nicht automatisch beim Drehen (ich dreh ja gar nicht) passieren, sondern auf Buttondruck. Meine Idee: Auslesen wie viel Platz oben und unten ist, bis der 1. andersfarbige Pixel auftaucht und daraus dann das neue Bild erstellen. Funktioniert nur bis jetzt nicht so ganz.
Code:
void cutright(int col, BufferedImage alt) {
int temp = 0;
int cutN = 0;
int cutE = 0;
for (int i = alt.getWidth() - 1; i > -1 && cutN == temp; i--, temp++, cutN++) {
for (int j = alt.getHeight() - 1; j > -1; j--) {
if (alt.getRGB(i, j) != col) {
cutN--;
break;
}
}
}
temp = 0;
for (int i = alt.getHeight() - 1; i > -1 && cutE == temp; i--, temp++, cutE++) {
for (int j = alt.getWidth() - 1; j > -1; j--) {
if (alt.getRGB(j, i) != col) {
cutE--;
break;
}
}
}
System.out.println(cutN + "," + alt.getHeight() + "_" + cutE + "," + alt.getWidth());
BufferedImage img = new BufferedImage(alt.getWidth() - 2 * cutN, alt.getHeight() - 2 * cutE, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2D = img.createGraphics();
g2D.drawImage(alt, -cutN, -cutE, null);
g2D.dispose();
picture.setIcon(new ImageIcon(img));
}
col ist der RGB-Wert der Farbe. Es wird immer ein Teil vom bild mit abgeschnitten. Weiß jemand woran das liegt?
mfg
ich²