java rotate是什么?讓我們一起來了解一下吧!
java rotate是java中的旋轉。java中圖片有分為豎直位置擺放和水平位置擺放的。如果需要把圖片位置進行調整,首先要取得圖片的信息,然后進行旋轉。
我們可以將Java rotate分為以下幾個:
1、圖片進行翻轉,其中包括水平翻轉以及垂直翻轉。
2、圖片進行各個角度旋轉。我們根據不同的需要,可以對這個值進行變動,達到自己滿意的效果。
3、應用組合進行操作,比如說水平翻轉+旋轉,或者垂直+水平+旋轉,任意。
實戰演練,具體步驟如下:
/** ? *?圖像旋轉 ? *?@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)); ? }
以上就是小編今天的分享了,希望可以幫助到大家。