Hoj,
nemohl by mě někdo poradit? Potřebuju upravit velikost zobrazovanýho obrázku na
požadovanou velikost 800*600. Původní velikost 2048*1056.
Zkoušel jsem to tímto způsobem ale funguje jen když místo
scaledBimg.scale(ResizeDimX,ResizeDimY); napíšu třeba
scaledBimg.scale(0.1,0.8); jenomže on mi pak resizuje i Y osu podle 0.1 a
obrázek je místo 800*600 např 800*240 takže původní obrázek není znatelný.
Prakticky se mi to jeví jako kdyby druhou hodnotu ignoroval.
int rozmerX = 800;
int rozmerY = 600;
BufferedImage bimg = null;
// BufferedImage[][] poleObr = new
BufferedImage[pocetKostekX][pocetKostekY];
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();
double ResizeDimX = rozmerX/bimg.getWidth();
double ResizeDimY = rozmerY/bimg.getHeight();
scaledBimg.scale(ResizeDimX,ResizeDimY);
scaledBimg.drawImage(bimg,null,0,0);
//--------------scaledImage
pak už jen scaledImage předám do ImageIcon a v JLabelu zobrazím.
Mohl by někdo poradit kde dělám chybu ?
Zkoušel jsem použít i AffineTransform ale nějak to i podle návodu nefungovalo
tak jak má. Prostě nejsem schopnej udělat jinou transformaci pro X a jinou pro
Y.
Za jakoukoliv radu moooc diky
Petr Roubal