Hoj,
moc děkuju funguje uplně užasně.
Petr Roubal
"Vity"
<[EMAIL PROTECTED]
z> Komu
Odeslal: "'Java'" <[email protected]>
konference-bounce Kopie
[EMAIL PROTECTED]
Předmět
RE: Image Scaling
01.02.2007 22:41
Odpovězte prosím
uživateli
Java
<[EMAIL PROTECTED]
cz>
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