如何使用JavaFX对图像进行像素化?
我想用JavaFx对图像进行像素化。 我的问题是,我最后只写了一个像素,所以它只能工作一次 我试了一个 这是我的密码:如何使用JavaFX对图像进行像素化?,java,image,javafx,Java,Image,Javafx,我想用JavaFx对图像进行像素化。 我的问题是,我最后只写了一个像素,所以它只能工作一次 我试了一个 这是我的密码: Image img = imgView.getImage(); PixelReader pixelReader = img.getPixelReader(); WritableImage wImage = new WritableImage( (int) img.getWidth(),
Image img = imgView.getImage();
PixelReader pixelReader = img.getPixelReader();
WritableImage wImage = new WritableImage(
(int) img.getWidth(),
(int) img.getHeight());
PixelWriter pixelWriter = wImage.getPixelWriter();
for (int y = 1; y < img.getHeight(); y += 3) {
for (int x = 1; x < img.getWidth(); x += 3) {
Color px = pixelReader.getColor(x, y);
float red = (float) px.getRed();
float green = (float) px.getGreen();
float blue = (float) px.getBlue();
Color all = new Color(red / 3, green / 3, blue / 3, 1);
for (int u = 0; u <= 3; u++) {
for (int i = 0; i <= 3; i++) {
pixelWriter.setColor(u, i, all);
}
}
}
}
Image img=imgView.getImage();
PixelReader PixelReader=img.getPixelReader();
WritableImage wImage=新的WritableImage(
(int)img.getWidth(),
(int)img.getHeight();
PixelWriter PixelWriter=wImage.getPixelWriter();
对于(int y=1;y 对于(int u=0;u只需检查设置颜色的部分:
for (int u = 0; u <= 3; u++) {
for (int i = 0; i <= 3; i++) {
pixelWriter.setColor(u, i, all);
}
}
但是,您需要确保不会尝试设置图像外某些像素的颜色。请按x、y、u和i检查循环的边界。请..相关:
pixelWriter.setColor(x + u, y + i, all);