Hoj,
jestli by někdo poradil kde dělám chybu ?
Pokouším se udělat dvojrozměrný pole obrázků kde bych měl vzít
čtverec(výsek) z obrázku A a uložit ho jako obrázek B.
Zajímavý je že pro souřadnice poleObr[0][0] mi to výsek normálně zobrazí
... ale žádnou další pozici ne ... prostě jsou černý.
zkoušel jsem si nakreslit pole a vypočítal si souřadnice který zadávám a
mělo by to fungovat .(
Kod:
       int rozmerX = 800;
       int rozmerY = 600;
       int rozmerKostkyX = 200;
       int rozmerKostkyY = 200;
       int pocetKostekX = 4;
       int pocetKostekY = 3;
       BufferedImage bimg = null;

        BufferedImage[][] poleObr = new
BufferedImage[pocetKostekY][pocetKostekX];
        try {
            // načtení obrázků
            bimg = ImageIO.read(new File("c:\\LV.jpg"));
        } catch (IOException ex) {
            ex.printStackTrace();
        }

        // ------------scaledImage

        BufferedImage scaledImage = new
BufferedImage(rozmerX,rozmerY,bimg.getType());
        Graphics2D scaledBimg = scaledImage.createGraphics();
        scaledBimg.drawImage(bimg, 0,0, 800,600, null);
        //--------------scaledImage
        for (int i = 0; i < pocetKostekY; i++) {
            for (int j = 0; j <pocetKostekX ; j++) {
                 BufferedImage forInstance = new
BufferedImage(rozmerKostkyX,rozmerKostkyY,bimg.getType());
                 Graphics2D GInstance = forInstance.createGraphics();

//GInstance.drawImage(scaledImage,j*rozmerKostkyX,i*rozmerKostkyY,(j+1)*rozmerKostkyX,(i+1)*rozmerKostkyY,j*rozmerKostkyX,i*rozmerKostkyY,(j+1)*rozmerKostkyX,(i+1)*rozmerKostkyY,null);

GInstance.drawImage(scaledImage,j*rozmerKostkyX,i*rozmerKostkyY,(j+1)*rozmerKostkyX,(i+1)*rozmerKostkyY,0,0,rozmerKostkyX,rozmerKostkyY,null);
                 poleObr[i][j] = forInstance;
            }
        }
Za jakékoliv rady díky

Petr Roubal

Odpovedet emailem