我正在尝试使用给定的四边形对我的位图进行透视转换。但是,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
表示裁剪位图。
答案 0 :(得分:0)
感谢 pskink 我得到了它的工作,这里有一个包含代码的帖子:
Distorting an image to a quadrangle fails in some cases on Android