【问题标题】:Rotate rectangle bitmap in Android在Android中旋转矩形位图
【发布时间】:2011-06-07 15:57:10
【问题描述】:

我有一个矩形位图,我需要将它顺时针或逆时针旋转 90 度。

我可以使用以下代码进行旋转:

    Matrix matrix = new Matrix();
    matrix.setRotate(90, originalBitmap.getWidth()/2, originalBitmap.getHeight()/2);
    return Bitmap.createBitmap(originalBitmap, 0, 0, originalBitmap.getWidth(), originalBitmap.getHeight(), matrix, true);

但是,此代码使用旧的高度/宽度值“就地”旋转图像。生成的图像看起来拉伸且丑陋。

有没有什么好方法可以将图像旋转 90 度到新的高度/宽度?可能,一种可能的解决方案是先修改原始位图的尺寸?

谢谢

【问题讨论】:

  • 您找到解决方案了吗?

标签: android android-ui android-image


【解决方案1】:

您在创建新位图时不使用旧值吗?只需在最后一行替换它们:

 return Bitmap.createBitmap(originalBitmap, 0, 0, originalBitmap.getWidth()/2, originalBitmap.getHeight()/2, matrix, true);

【讨论】:

  • 如果我用这样的参数创建新的位图: newWidth = originalHeight;新高度 = 原始宽度;有一个异常告诉我位图的高度不能小于原始高度。
猜你喜欢
  • 2011-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-18
  • 1970-01-01
  • 1970-01-01
  • 2017-04-18
  • 2011-01-26
相关资源
最近更新 更多