首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scalr调整大小并按大小裁剪

Scalr调整大小并按大小裁剪
EN

Stack Overflow用户
提问于 2015-09-05 16:45:42
回答 1查看 2.8K关注 0票数 2

我想在不同宽度和高度的各种位置上显示一幅图像。

我正在使用一种使用Sclar进行裁剪和调整大小的方法,但我有两个问题:

  1. 在某些情况下,结果看起来不太好。我认为这是因为代码中的图像是第一次缩放。
  2. 在其他情况下我有例外。例如:

无效的裁剪边界:x 32,y -1,宽度64和高度64必须都是>= 0。

将裁剪和图像调整到一定的目标宽度和高度的最佳方法是什么?

以下是我目前的方法:

代码语言:javascript
复制
  public static BufferedImage resizeAndCropToCenter(BufferedImage image, int width, int height) {
    image = Scalr.resize(image, Scalr.Method.QUALITY, Scalr.Mode.FIT_TO_WIDTH,
        width * 2, height * 2, Scalr.OP_ANTIALIAS);

    int x, y;

    int imageWidth = image.getWidth();
    int imageHeight = image.getHeight();

    if (imageWidth > imageHeight) {
      x = width / 2;
      y = (imageHeight - height) / 2;
    } else {
      x = (imageWidth - width) / 2;
      y = height / 2;
    }


    return Scalr.crop(image, x, y, width, height);
  }
EN

回答 1

Stack Overflow用户

发布于 2016-03-08 01:15:59

  1. 在调整大小的方法中,无论维度是什么,您总是在执行FIT_TO_WIDTH。也许您应该做一些不同的事情,这取决于图像和所需的大小是肖像还是景观格式。你在这方面的目标是什么?
  2. 而不是 Y= (imageHeight -高度)/ 2;

使用

代码语言:javascript
复制
y = Math.abs((imageHeight - height) / 2);

确保Y永远不会是消极的。对其他块中的x也执行同样的操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32415471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档