Java codepublic 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 ;
}