簡體   English   中英

使用矩形繪制圖像

[英]Draw image using rectangles

我編寫了一個程序,該程序從命令行讀取圖像,並希望讀取每個像素以繪制相應顏色的矩形,以從矩形“重新創建”圖像。

但是,盡管矩形的大小正確,但每個像素似乎都是黑色的。 至少,我在輸出面板中看到的是一張與輸入圖片大小相同的黑色圖片。

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

和主要功能:

    public static void main( String[] args ) throws IOException{         
        /* ... */

        AppDrawPanel draw = new AppDrawPanel();
        draw.loadAPPImage(args[0]);
        frame.add(draw);        
        /* ... */
    } 

/* ... */表示與繪制矩形或讀取圖像無關的代碼。

在此相關示例中 ,每個像素的寬度和高度都以10的任意因子縮放。方法drawImage()然后將圖像縮放到組件的首選大小。 作為練習,重寫getPreferredSize()以返回適當的尺寸:

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

還可以考慮使任意因子成為類級別的屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM