IOS上传照片会旋转一定的角度,所以有时候需要把图片给旋转。具体实现如下:
public String rotateImages(String path,int degree) throws IOException{
BufferedImage bufferedimage = ImageIO.read(new File(path));
ByteArrayOutputStream out = new ByteArrayOutputStream();
int w= bufferedimage.getWidth();// 得到图片宽度。
int h= bufferedimage.getHeight();// 得到图片高度。
int type= bufferedimage.getColorModel().getTransparency();// 得到图片透明度。
BufferedImage img;// 空的图片。
Graphics2D graphics2d;// 空的画笔。
(graphics2d= (img= new BufferedImage(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();
String fileName = UUID.randomUUID().toString() + ".jpg";
ImageIO.write(img, "jpg", new File(Constant.PATH + fileName));
return fileName;// 返回复制好的图片,原图片依然没有变,没有旋转,下次还可以使用。
}
网友评论