Java 使图片旋转以及水平翻转垂直翻转(详细且可用)

最近在做小型游戏,遇到了要翻转图片的苦恼,经过我一下午的研究,终于发现了一种好用的方法。

 

部分代码来源于别人,我在这个基础上修改了下,变得更好用了,之前的别人Image输入都是BufferedImage,我改成了Image,

也就是加了一个转换

大家如果看不懂代码没关系,会用就行了,我会展示一下怎么用的

 

ImageRotate类

package mypackage;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;

/**
 * Author Mythos_Q
 *
 * Time 2011-07-20
 *
 * Description 图片旋转、翻转处理
 */
public class ImgRotate 
{
	static int Up_Down_Reverse = 0;
	static int Left_Right_Reverse = 1;
     /**
     * 旋转图片为指定角度
     * 
     * @param bufferedimage
     *            目标图像
     * @param degree
     *            旋转角度
     * @return
     */
    public static BufferedImage rotateImage(final BufferedImage bufferedimage,final int degree){
        int w = bufferedimage.getWidth();
        int h = bufferedimage.getHeight();
        int type = bufferedimage.getColorModel().getTransparency();
        BufferedImage img;
        Graphics2D graphics2d;
        (graphics2d = (img = new BufferedImage(h, w, type)).createGraphics()).setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);
        graphics2d.rotate(Math.toRadians(degree), w / 2, h / 2 + (w>h?(w-h)/2:(h-w)/2));
        graphics2d.drawImage(bufferedimage, 0, 0, null);
        graphics2d.dispose();
        return img;
    }

    /**
     * 旋转图片为指定角度
     *
     * @param file
     *            目标图像
     * @param degree
     *            旋转角度(90,180,270)
     * @return
     */
    public static File rotateImage(File file,int degree) throws Exception{
        if(degree==90) return rotateImage90(file);
        if(degree==180) return rotateImage180(file);
        if(degree==270) return rotateImage270(file);
        return null;
    }
    public static Image rotateImage(Image Image,int degree) 
    {
        if(degree==90) 
        	return rotateImage90(Image);
        if(degree==180)
        	return rotateImage180(Image);
        if(degree==270)
        	return rotateImage270(Image);
        return null;
    }
    
    private static Image rotateImage90(Image image) 
    {
    	BufferedImage bufferedimage = ImageToBuf
  • 6
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值