Java图像之自定义角度旋转(实例)
图像的旋转需要调用Graphics2D类的rotate()方法,该方法将根据指定的弧度旋转图像。
语法如下:
rotate(doubletheta)
其中,theta是指旋转的弧度。
说明:该方法只接受旋转的弧度作为参数,可以使用Math类的toRadians()方法将角度转换为弧度。toRadians()方法接受角度值作为参数,返回值是转换完毕的弧度值。
实例代码:
/***//**
*旋转图片为指定角度
*
*@parambufferedimage
*目标图像
*@paramdegree
*旋转角度
*@return
*/
publicstaticBufferedImagerotateImage(finalBufferedImagebufferedimage,
finalintdegree){
intw=bufferedimage.getWidth();//得到图片宽度。
inth=bufferedimage.getHeight();//得到图片高度。
inttype=bufferedimage.getColorModel().getTransparency();//得到图片透明度。
BufferedImageimg;//空的图片。
Graphics2Dgraphics2d;//空的画笔。
(graphics2d=(img=newBufferedImage(w,h,type))
.createGraphics()).setRenderingHint(
RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2d.rotate(Math.toRadians(degree),w/2,h/2);//旋转,degree是整型,度数,比如垂直90度。
graphics2d.drawImage(bufferedimage,0,0,null);//从bufferedimagecopy图片至img,0,0是img的坐标。
graphics2d.dispose();
returnimg;//返回复制好的图片,原图片依然没有变,没有旋转,下次还可以使用。
}
/***//**
*变更图像为指定大小
*
*@parambufferedimage
*目标图像
*@paramw
*宽
*@paramh
*高
*@return
*/
publicstaticBufferedImageresizeImage(finalBufferedImagebufferedimage,
finalintw,finalinth){
inttype=bufferedimage.getColorModel().getTransparency();//得到透明度。
BufferedImageimg;//空图片。
Graphics2Dgraphics2d;//空画笔。
(graphics2d=(img=createImage(w,h,type))
.createGraphics()).setRenderingHint(
RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2d.drawImage(bufferedimage,0,0,w,h,0,0,bufferedimage
.getWidth(),bufferedimage.getHeight(),null);
graphics2d.dispose();
returnimg;
}
/***//**
*水平翻转图像
*
*@parambufferedimage目标图像
*@return
*/
publicstaticBufferedImageflipImage(finalBufferedImagebufferedimage){
intw=bufferedimage.getWidth();//得到宽度。
inth=bufferedimage.getHeight();//得到高度。
BufferedImageimg;//空图片。
Graphics2Dgraphics2d;//空画笔。
(graphics2d=(img=createImage(w,h,bufferedimage
.getColorModel().getTransparency())).createGraphics())
.drawImage(bufferedimage,0,0,w,h,w,0,0,h,null);
graphics2d.dispose();
returnimg;
}
总结
以上就是本文的全部内容,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!