Upsal jsem se, je tam o parametr mene.
scaledBimg.drawImage(bimg, 0,0, 800,600, null); 


-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Vity
Sent: Thursday, February 01, 2007 10:36 PM
To: 'Java'
Subject: RE: Image Scaling

Zdravim,
je vicerozpusobu jak resizovat obrazek. V tom tvem kodu treba takto:
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, 800,600, null);

Dalsi moznosti je treba metoda getScaledInstance na Image.


Vity

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED]
Sent: Thursday, February 01, 2007 10:04 PM
To: [email protected]
Subject: Image Scaling

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