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
