Zdravím,

my jsme pro změnu velikosti obrázku použili toto:
BufferedImage source;
// nejak vypoctenu z puvodni velikosti a pozadovaneho zmenseni
int destWidth; 
int destHeight = 600;

Image img = source.getScaledInstance(destWidth, destHeight,
Image.SCALE_SMOOTH);
                
BufferedImage outImage = new BufferedImage(destWidth, destHeight,
BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = outImage.createGraphics();
g2.drawImage(img, 0, 0, null);
g2.dispose();

return outImage;


Vy chcete zrušit původní poměr stran obrázku? Nebylo by lepší jej
zachovat?


[EMAIL PROTECTED] píše v Čt 01. 02. 2007 v 22:03 +0100: 
> 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         
> 
-- 
Petr Ferschmann

SoftEU s.r.o.
-----------------------------------
Sady Petatricatniku 31
301 00 Plzen
Czech Republic
-----------------------------------
Phone: +420 373 729 300
Fax:   +420 373 729 301
Cell:  +420 775 638 008
E-mail: [EMAIL PROTECTED] 


Odpovedet emailem