Ich muss einen Abschnitt eines bufferedImage pixelieren. Ich habe versucht, den Code von How can I pixelate a jpg with java? jedoch modifizierte dies für ein gesamtes Bild ausgebildet ist, und scheint nicht mit bestimmten Abschnitten zu arbeiten (ich einfach erhalten schwarz ein schwarzes Bild ausgegeben)Verpixeln eines Abschnitts eines gepuffertenBildes
Raster src = bufferedImage.getData();
WritableRaster dest = src.createCompatibleWritableRaster();
for (int y = pixelateSection.y; y < src.getHeight(); y += PIX_SIZE) {
for (int x = pixelateSection.x; x < src.getWidth(); x += PIX_SIZE) {
double[] pixel = new double[3];
pixel = src.getPixel(x, y, pixel);
for (int yd = y; (yd < y + PIX_SIZE) && (yd < dest.getHeight()); yd++) {
for (int xd = x; (xd < x + PIX_SIZE) && (xd < dest.getWidth()); xd++) {
dest.setPixel(xd, yd, pixel);
}
}
}
}
bufferedImage.setData(dest);
return bufferedImage;
Erwartetes Ergebnis:
Der Code sieht richtig. Zeige uns mehr von deinem Programm. Was sind die Anfangswerte in 'pixelateSection'? – JimmyB
Probieren Sie 'dest.setRect (src);' vor der Schleife aus. – JimmyB
Sie haben dies nicht einmal versucht – gpasch