Hoj,
kdybych zachovával původní poměr stran tak mi to stačí v tom provedení co
jsem psal. Jenže potřebuju aby obrázek měl vždy 800*600 ,jelikož z něho
potom budu vysekávat části ,abych z nich mohl udělat puzzle.
Druhá možnost je samozřejmě nechat obrázek v původní velikosti a resizovat
mapy na velikost obrázku. Nicméně bych pak plochu ,do které skládám
nezobrazil na jedné obrazovce.

Petr Roubal



                                                                       
             Petr Ferschmann                                           
             <[EMAIL PROTECTED]                                         
             eu.com>                                                  Komu
             Odeslal:                      Java <[email protected]>   
             konference-bounce                                       Kopie
             [EMAIL PROTECTED]                                                 
                                                                   Předmět
                                           Re: Image Scaling           
             01.02.2007 22:39                                          
                                                                       
                                                                       
             Odpovězte prosím                                      
                 uživateli                                           
                   Java                                                
             <[EMAIL PROTECTED]                                         
                    cz>                                                
                                                                       
                                                                       




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