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         

Odpovedet emailem