我需要对BuffereImage的一部分进行像素化。我试过修改代码,从如何用java像素化jpg?但是,这是为整个图像设计的,并且似乎不适用于特定的部分(我只是将黑色图像输出为黑色)
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;
预期结果:
1条答案
按热度按时间polhcujo1#
很好用。我已经调整了没有包含的部分的代码。
这是工作代码。
输入图像
输出图像