
java rotate是什么?讓我們一起來了解一下吧!
java rotate是java中的旋轉(zhuǎn)。java中圖片有分為豎直位置擺放和水平位置擺放的。如果需要把圖片位置進行調(diào)整,首先要取得圖片的信息,然后進行旋轉(zhuǎn)。

我們可以將Java rotate分為以下幾個:
1、圖片進行翻轉(zhuǎn),其中包括水平翻轉(zhuǎn)以及垂直翻轉(zhuǎn)。
2、圖片進行各個角度旋轉(zhuǎn)。我們根據(jù)不同的需要,可以對這個值進行變動,達到自己滿意的效果。
3、應(yīng)用組合進行操作,比如說水平翻轉(zhuǎn)+旋轉(zhuǎn),或者垂直+水平+旋轉(zhuǎn),任意。
實戰(zhàn)演練,具體步驟如下:
/**
?
*?圖像旋轉(zhuǎn)
?
*?@param?src
?
*?@param?angel
?
*?@return
?
*/
?
public?static?BufferedImage?Rotate(Image?src,?double?angel)?{undefined
?
int?src_width?=?src.getWidth(null);
?
int?src_height?=?src.getHeight(null);
?
//?calculate?the?new?image?size
?
Rectangle?rect_des?=?CalcRotatedSize(new?Rectangle(new?Dimension(
?
src_width,?src_height)),?angel);
?
BufferedImage?res?=?null;
?
res?=?new?BufferedImage(rect_des.width,?rect_des.height,
?
BufferedImage.TYPE_3BYTE_BGR);
?
Graphics2D?g2?=?res.createGraphics();
?
//?transform
?
g2.translate((rect_des.width?-?src_width)?/?2,
?
(rect_des.height?-?src_height)?/?2);
?
g2.rotate(Math.toRadians(angel),?src_width?/?2,?src_height?/?2);
?
g2.drawImage(src,?null,?null);
?
return?res;
?
}
?
public?static?Rectangle?CalcRotatedSize(Rectangle?src,?double?angel)?{undefined
?
//?if?angel?is?greater?than?90?degree,?we?need?to?do?some?conversion
?
if?(angel?>=?90)?{undefined
?
if(angel?/?90?%?2?==?1){undefined
?
int?temp?=?src.height;
?
src.height?=?src.width;
?
src.width?=?temp;
?
}
?
angel?=?angel?%?90;
?
}
?
double?r?=?Math.sqrt(src.height?*?src.height?+?src.width?*?src.width)?/?2;
?
double?len?=?2?*?Math.sin(Math.toRadians(angel)?/?2)?*?r;
?
double?angel_alpha?=?(Math.PI?-?Math.toRadians(angel))?/?2;
?
double?angel_dalta_width?=?Math.atan((double)?src.height?/?src.width);
?
double?angel_dalta_height?=?Math.atan((double)?src.width?/?src.height);
?
int?len_dalta_width?=?(int)?(len?*?Math.cos(Math.PI?-?angel_alpha
?
-?angel_dalta_width));
?
len_dalta_width=len_dalta_width>0?len_dalta_width:-len_dalta_width;
?
int?len_dalta_height?=?(int)?(len?*?Math.cos(Math.PI?-?angel_alpha
?
-?angel_dalta_height));
?
len_dalta_height=len_dalta_height>0?len_dalta_height:-len_dalta_height;
?
int?des_width?=?src.width?+?len_dalta_width?*?2;
?
int?des_height?=?src.height?+?len_dalta_height?*?2;
?
des_width=des_width>0?des_width:-des_width;
?
des_height=des_height>0?des_height:-des_height;
?
return?new?java.awt.Rectangle(new?Dimension(des_width,?des_height));
?
}以上就是小編今天的分享了,希望可以幫助到大家。
