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; }
总结
以上就是本文的全部内容,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!