日期:2014-05-17 浏览次数:20762 次
public int ImageRotate(InputStream image, String dir, String fileName,int theta){ log.info("图片旋转!"); int iRes = 99999; String suffix = "JPEG"; if(fileName.endsWith(".jpg") || fileName.endsWith(".JPG")) suffix = "JPEG"; if(fileName.endsWith(".bmp") || fileName.endsWith(".BMP")) suffix = "BMP"; if(fileName.endsWith(".png") || fileName.endsWith(".PNG")) suffix = "PNG"; BufferedImage srcImg = null; BufferedImage newImg = null; try{ srcImg = javax.imageio.ImageIO.read(image); // JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(image); // srcImg = decoder.decodeAsBufferedImage(); int width = srcImg.getWidth(); int height = srcImg.getHeight(); int x = Math.round(width /2); int y = Math.round(height/2); double angdeg = 0; if(theta==1){ angdeg = 90; x = y; }else{ angdeg = -90; y = x; } System.out.println(x+" "+y+" pic type: "+srcImg.getType()); newImg = new BufferedImage(height,width,srcImg.getType()); //旋转 AffineTransform atf = AffineTransform.getScaleInstance(1, 1); atf.rotate(Math.toRadians(angdeg),x,y); AffineTransformOp atfo = new AffineTransformOp(atf,1); atfo.filter(srcImg, newImg); ImageIO.write(newImg,suffix,new File("c:/a.png")); iRes = 0; }catch(Exception e){ e.printStackTrace(); } return iRes ; }