Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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
Java 使用矩形绘制图像_Java_Image_Swing - Fatal编程技术网

Java 使用矩形绘制图像

Java 使用矩形绘制图像,java,image,swing,Java,Image,Swing,我写了一个程序,从命令行读取一个图像,并希望读取每个像素以绘制相应颜色的矩形,从而从矩形中“重新创建”图像 然而,尽管矩形大小正确,但每个像素似乎都是黑色的。至少,我在输出面板中看到的是与输入图片大小相同的黑色图片 class AppDrawPanel extends JPanel { private BufferedImage bi; /* ... */ public void loadAPPImage( String s )

我写了一个程序,从命令行读取一个图像,并希望读取每个像素以绘制相应颜色的矩形,从而从矩形中“重新创建”图像

然而,尽管矩形大小正确,但每个像素似乎都是黑色的。至少,我在输出面板中看到的是与输入图片大小相同的黑色图片

    class AppDrawPanel extends JPanel {  

        private BufferedImage bi;

        /* ... */

        public void loadAPPImage( String s ) throws IOException{
             bi = ImageIO.read(new File(s));
        }

        @Override
        public void paint(Graphics g){
           Graphics2D g2 = (Graphics2D) g;
           int w = bi.getWidth();
           int h = bi.getHeight();

           for( int x = 0; x < w; x++){
                for ( int z = 0; z < h; z++ ){
                        Color c = new Color(bi.getRGB(x, z));
                        super.setForeground(c);
                        g2.fillRect(x, z, 3, 3);  
                }    
           }
        }
    }
其中
/**/
表示与绘制矩形或读取图像无关的代码。

在此相关示例中,每个像素的宽度和高度按10的任意因子缩放。然后,方法
drawImage()
将图像缩放到组件的首选大小。作为练习,替代以返回适当的标注:

new Dimension(imgW * 10, imgH * 10);

还考虑将任意因子设为类级属性。

< P>在此,每个像素的宽度和高度按10的任意因子缩放。然后,方法
drawImage()
将图像缩放到组件的首选大小。作为练习,替代以返回适当的标注:

new Dimension(imgW * 10, imgH * 10);

还考虑将任意因子设为类级属性。

< P>在此,每个像素的宽度和高度按10的任意因子缩放。然后,方法
drawImage()
将图像缩放到组件的首选大小。作为练习,替代以返回适当的标注:

new Dimension(imgW * 10, imgH * 10);

还考虑将任意因子设为类级属性。

< P>在此,每个像素的宽度和高度按10的任意因子缩放。然后,方法
drawImage()
将图像缩放到组件的首选大小。作为练习,替代以返回适当的标注:

new Dimension(imgW * 10, imgH * 10);

还考虑将任意因子设为类级属性。super.set前台(c)可能只是

g2.setColor(c)
@Marco13谢谢你,它有效:)@Andrew Thompson谢谢你的建议:)不过,看看垃圾神的答案吧。简单地将图像绘制得更大比绘制数千个矩形要有效得多。(尽管基于这个问题,你必须考虑你有意选择你的方法的可能性)……MaCoC13是的,这是一个家庭作业,我不得不用矩形做,因为我们必须实现不同的黑/白函数;1) 为了更快地获得更好的帮助,请发布一个(最简单的完整且可验证的示例)。2) 例如,获取图像的一种方法是热链接到中看到的图像。3) 考虑到这是一个问答网站,最好从一个明确的问题开始,比如“如何绘制方框,使其不是黑色?”或“错误是什么?”。你的问题是什么?
super.set前台(c)
可能只是
g2.setColor(c)
@Marco13谢谢你,它有效:)@Andrew Thompson谢谢你的建议:)不过,看看垃圾神的答案吧。简单地将图像绘制得更大比绘制数千个矩形要有效得多。(尽管基于这个问题,你必须考虑你有意选择你的方法的可能性)……MaCoC13是的,这是一个家庭作业,我不得不用矩形做,因为我们必须实现不同的黑/白函数;1) 为了更快地获得更好的帮助,请发布一个(最简单的完整且可验证的示例)。2) 例如,获取图像的一种方法是热链接到中看到的图像。3) 考虑到这是一个问答网站,最好从一个明确的问题开始,比如“如何绘制方框,使其不是黑色?”或“错误是什么?”。你的问题是什么?
super.set前台(c)
可能只是
g2.setColor(c)
@Marco13谢谢你,它有效:)@Andrew Thompson谢谢你的建议:)不过,看看垃圾神的答案吧。简单地将图像绘制得更大比绘制数千个矩形要有效得多。(尽管基于这个问题,你必须考虑你有意选择你的方法的可能性)……MaCoC13是的,这是一个家庭作业,我不得不用矩形做,因为我们必须实现不同的黑/白函数;1) 为了更快地获得更好的帮助,请发布一个(最简单的完整且可验证的示例)。2) 例如,获取图像的一种方法是热链接到中看到的图像。3) 考虑到这是一个问答网站,最好从一个明确的问题开始,比如“如何绘制方框,使其不是黑色?”或“错误是什么?”。你的问题是什么?
super.set前台(c)
可能只是
g2.setColor(c)
@Marco13谢谢你,它有效:)@Andrew Thompson谢谢你的建议:)不过,看看垃圾神的答案吧。简单地将图像绘制得更大比绘制数千个矩形要有效得多。(尽管基于这个问题,你必须考虑你有意选择你的方法的可能性)……MaCoC13是的,这是一个家庭作业,我不得不用矩形做,因为我们必须实现不同的黑/白函数;