栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

旋转图像对象

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

旋转图像对象

因此,基于此答案中的示例,您应该能够设计一种旋转方法,该方法可以将源图像旋转给定的度数,例如…

  // Make sure you actually load some image and assign it to this  // variable, otherwise you will have a NullPointerException to   // deal with  private BufferedImage source;  public Image rotateBy(double degrees) {    // The size of the original image    int w = source.getWidth();    int h = source.getHeight();    // The angel of the rotation in radians    double rads = Math.toRadians(degrees);    // Some nice math which demonstrates I have no idea what I'm talking about    // Okay, this calculates the amount of space the image will need in    // order not be clipped when it's rotated    double sin = Math.abs(Math.sin(rads));    double cos = Math.abs(Math.cos(rads));    int newWidth = (int) Math.floor(w * cos + h * sin);    int newHeight = (int) Math.floor(h * cos + w * sin);    // A new image, into which the original can be painted    BufferedImage rotated = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_ARGB);    Graphics2D g2d = rotated.createGraphics();    // The transformation which will be used to actually rotate the image    // The translation, actually makes sure that the image is positioned onto    // the viewable area of the image    AffineTransform at = new AffineTransform();    at.translate((newWidth - w) / 2, (newHeight - h) / 2);    // And we rotate about the center of the image...    int x = w / 2;    int y = h / 2;    at.rotate(rads, x, y);    g2d.setTransform(at);    // And we paint the original image onto the new image    g2d.drawImage(source, 0, 0, null);    g2d.dispose();    return rotated;  }


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/497290.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号