2 回答

TA貢獻1765條經(jīng)驗 獲得超5個贊
radius += Math.PI / 2;
try{
File f = new File(fpath+imagename);//根據(jù)路徑和文件名創(chuàng)建文件對象;
Image image = ImageIO.read(f)
ImageIcon ico = null;
AffineTransform trans = null;
trans = new AffineTransform();
x = image.getWidth(null);
y = image.getHeight(null);
trans.rotate(radius,x/2 , y/2);
BufferedImage buffer1 = new BufferedImage(x,y,BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = buffer1.createGraphics();
g2.setTransform(trans);
ico = new ImageIcon(buffer1);
g2.drawImage(image,null,null);
limage.setIcon(ico);//傳入Label
}catch(Exception e) {
e.printStackTrace();
}
buffer1的寬高要根據(jù)旋轉(zhuǎn)的角度定的,180度時寬高保持不變,90或270度時寬高要互調(diào)一下

TA貢獻1942條經(jīng)驗 獲得超3個贊
Q1:
public abstract void rotate(double theta,
double x,
double y)將當(dāng)前的 Graphics2D Transform 與平移后的旋轉(zhuǎn)轉(zhuǎn)換連接。后續(xù)呈現(xiàn)的變換是平移到指定位置,旋轉(zhuǎn)指定弧度,然后向回平移相同的距離。這等同于以下調(diào)用序列:
translate(x, y);
rotate(theta);
translate(-x, -y);
使用正角度 theta 進行旋轉(zhuǎn),可將正 x 軸上的點轉(zhuǎn)向正 y 軸。
參數(shù):
theta - 旋轉(zhuǎn)的角度,以弧度表示
x - 旋轉(zhuǎn)原點的 x 坐標
y - 旋轉(zhuǎn)原點的 y 坐標
Q2:
public void closePath()通過向最后 moveTo 的坐標繪制直線閉合當(dāng)前子路徑。如果已經(jīng)閉合路徑,則此方法無效。
添加回答
舉報