Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JavaFX对图像进行像素化?_Java_Image_Javafx - Fatal编程技术网

如何使用JavaFX对图像进行像素化?

如何使用JavaFX对图像进行像素化?,java,image,javafx,Java,Image,Javafx,我想用JavaFx对图像进行像素化。 我的问题是,我最后只写了一个像素,所以它只能工作一次 我试了一个 这是我的密码: Image img = imgView.getImage(); PixelReader pixelReader = img.getPixelReader(); WritableImage wImage = new WritableImage( (int) img.getWidth(),

我想用JavaFx对图像进行像素化。 我的问题是,我最后只写了一个像素,所以它只能工作一次

我试了一个

这是我的密码:

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);