有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java有一种在使用矩阵时不拉伸位图的方法。位图上的polytoply()?

我试图用给定的四边形对位图进行透视变换。然而,Matrix.polyToPoly函数不仅拉伸了我想要的图像部分,还拉伸了给定区域外的像素,因此在某些边缘情况下会形成一个巨大的图像,这会导致我的应用程序因OOM而崩溃

  • 是否有任何方法可以将像素放置在所述区域之外而不被拉伸
  • 或者有没有其他更方便记忆的透视变换方法

我现在是这样做的:

// Perspective Transformation
float[] destination = {0, 0,
        width, 0,
        width, height,
        0, height};

Matrix post = new Matrix();
post.setPolyToPoly(boundingBox.toArray(), 0, destination, 0, 4);
Bitmap transformed = Bitmap.createBitmap(temp, 0, 0, cropWidth, cropHeight, post, true);

其中cropWidthcropHeight是位图的大小(我将其裁剪到四边形的边缘以节省内存),并且temp称为裁剪位图


共 (1) 个答案