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);
其中cropWidth
和cropHeight
是位图的大小(我将其裁剪到四边形的边缘以节省内存),并且temp
称为裁剪位图
# 1 楼答案
多亏了pskink,我才让它工作起来,下面是一篇带有代码的帖子: