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