java图形选旋转函数_java 图形旋转操作

其实这不算原创了,只是把别人的代码做了下整理,方便同样需要的朋友直接使用了。:)

原文请见这里 。

package myclass;

import java.awt.*;

import java.awt.image.*;

import java.awt.image.*;

import java.awt.geom.AffineTransform;

public class myImg {

public static BufferedImage rotateImg( BufferedImage image, int degree, Color bgcolor ){

int iw = image.getWidth();//原始图象的宽度

int ih = image.getHeight();//原始图象的高度

int w=0;

int h=0;

int x=0;

int y=0;

degree=degree%360;

if(degree<0)degree=360+degree;//将角度转换到0-360度之间

double ang=degree* 0.0174532925;//将角度转为弧度

/**

*确定旋转后的图象的高度和宽度

*/

if(degree == 180|| degree == 0 || degree == 360){

w = iw;

h = ih;

}else if(degree == 90|| degree == 270){

w = ih;

h = iw;

}else{

int d=iw+ih;

w=(int)(d*Math.abs(Math.cos(ang)));

h=(int)(d*Math.abs(Math.sin(ang)));

}

x = (w/2)-(iw/2);//确定原点坐标

y = (h/2)-(ih/2);

BufferedImage rotatedImage=new BufferedImage(w,h,image.getType());

Graphics gs=rotatedImage.getGraphics();

gs.setColor(bgcolor);

gs.fillRect(0,0,w,h);//以给定颜色绘制旋转后图片的背景

AffineTransform at=new AffineTransform();

at.rotate(ang,w/2,h/2);//旋转图象

at.translate(x,y);

AffineTransformOp op=new AffineTransformOp(at,AffineTransformOp.TYPE_NEAREST_NEIGHBOR);

op.filter(image, rotatedImage);

image=rotatedImage;

return image;

}

}

使用:image=myclass.myImg.rotateImg(image,45,Color.white);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值