老生常谈了,直接看代码。
bufferedimage.getColorModel().getTransparency()以获得原始图片透明度用于生成缓存图,在缓存图进行相应操作即可。

/***//**
*旋转图片为指定角度
*
*@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);
graphics2d.drawImage(bufferedimage,0,0,null);
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;
}
bufferedimage.getColorModel().getTransparency()以获得原始图片透明度用于生成缓存图,在缓存图进行相应操作即可。










































































