1
Мне нужно выполнить пикселизацию раздела bufferedImage. Я попытался модифицировать код из How can I pixelate a jpg with java? однако это предназначено для всего изображения и не похоже на работу с конкретными разделами (я просто получить черный черное изображение выводимые)Pixelating раздел bufferedImage
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;
Ожидаемый результат:
Код выглядит правильно. Покажите нам больше своей программы. Каковы начальные значения в 'pixelateSection'? – JimmyB
Попробуйте 'dest.setRect (src);' перед циклом. – JimmyB
вы даже не пробовали этого – gpasch