gpt4 book ai didi

java - 在位图上使用 Matrix.polyToPoly() 时,有没有办法不拉伸(stretch)位图?

转载 作者:行者123 更新时间:2023-11-29 02:35:34 25 4
gpt4 key购买 nike

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

  • 有什么方法可以将像素放在所述区域之外而不被拉伸(stretch)吗?
  • 或者是否有任何其他可能性来进行更便于内存的透视变换?

我目前是这样做的:

// 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 表示裁剪位图。

最佳答案

感谢 pskink 我让它工作了,这是一个包含代码的帖子:

Distorting an image to a quadrangle fails in some cases on Android

关于java - 在位图上使用 Matrix.polyToPoly() 时,有没有办法不拉伸(stretch)位图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47325753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com