来自:http://cping1982.blog.51cto.com/601635/130066/

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://cping1982.blog.51cto.com/601635/130066

老生常谈了,直接看代码。

bufferedimage.getColorModel().getTransparency()以获得原始图片透明度用于生成缓存图,在缓存图进行相应操作即可。

/**
     * 旋转图片为指定角度
     * 
     * @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(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();
        return img;
    }

    /**
     * 变更图像为指定大小
     * 
     * @param bufferedimage
     *            目标图像
     * @param w
     *            宽
     * @param h
     *            高
     * @return
     */
    public static BufferedImage resizeImage(final BufferedImage bufferedimage,
            final int w, final int h) {
        int type = bufferedimage.getColorModel().getTransparency();
        BufferedImage img;
        Graphics2D graphics2d;
        (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();
        return img;
    }

    /**
     * 水平翻转图像
     * 
     * @param bufferedimage 目标图像
     * @return
     */
    public static BufferedImage flipImage(final BufferedImage bufferedimage) {
        int w = bufferedimage.getWidth();
        int h = bufferedimage.getHeight();
        BufferedImage img;
        Graphics2D graphics2d;
        (graphics2d = (img = createImage(w, h, bufferedimage
                .getColorModel().getTransparency())).createGraphics())
                .drawImage(bufferedimage, 0, 0, w, h, w, 0, 0, h, null);
        graphics2d.dispose();
        return img;
    }

本文出自 “Java究竟怎么玩” 博客,请务必保留此出处http://cping1982.blog.51cto.com/601635/130066

最新文章

  1. 关于DOM对象与JQuery对象的那些事
  2. SetZOrder 无效
  3. SQLServer数据库中创建临时表
  4. 密钥文件snk
  5. ACM/ICPC 之 平面几何-两直线关系(POJ 1269)
  6. 从官方ROM中提取原生APK
  7. throw er; Unhandled 'error' event Error: listen EADDRINUSE的解决方法
  8. DevExpress.XtraGrid winform试用分享
  9. MySQL数据库 安装图解
  10. 利用javascript Location访问Url,重定向,刷新页面
  11. leetcode 第九题 Palindrome Number(java)
  12. oracle使用LEFT JOIN关联产生的问题在查询结果中使用CASE WHEN 无法判断
  13. ip地址的网络配置
  14. Android性能测试工具Emmagee
  15. 用C写一个web服务器(一) 基础功能
  16. [leetcode-526-Beautiful Arrangement]
  17. spring boot + mybatis + hikaricp + swagger2 + jasypt
  18. Windows核心编程&内存管理
  19. Node中包的加载机制
  20. amoeba 使用笔记

热门文章

  1. docker x509: certificate has expired or is not yet valid
  2. linux python2.6升级2.7
  3. java性能调优02
  4. Linux 2.6.x fs/pipe.c local kernel root(kit?) exploit (x86)
  5. 函数节流及手机端点击延迟200ms解决方法
  6. 遇到的css问题
  7. 关于prototype与constructor的几点理解
  8. 手机作为蓝牙音频源连接到Linux时,如何通过音量键调节传入的音量大小
  9. Linux账号管理与ALC权限设定(一)
  10. CSIC_716_20191213【内置函数exec、元类】