gpt4 book ai didi

ios - 获取图像的像素值并裁剪图像的黑色部分 : Objective C

转载 作者:行者123 更新时间:2023-11-29 01:08:48 27 4
gpt4 key购买 nike

我可以获取图像的像素值并裁剪其黑色部分吗?例如,我有这张图片:

Image .

我想要这样的东西

image

没有黑色部分。

关于如何做到这一点的任何可能的解决方案?任何库/代码?

我正在使用 Objective C。

我看过这个solution对于类似的问题,但我不详细了解。请提供详细步骤。谢谢。

最佳答案

执行此操作的最快方法可能是遍历图像并找到非黑色的边框像素。然后将图像重新绘制到一个新的上下文中,剪裁边框像素接收到的矩形。

我所说的边界像素是指最左边、最上面、最底部和最右边。您可以找到一种从 UIImage 获取原始 RGBA 缓冲区的方法,然后您可以通过它遍历宽度和高度并在适当的时候设置边框值。这意味着例如要获取 leftMostPixel,您首先将其设置为某个较大的值(或图像宽度),然后在迭代中如果像素不是黑色并且如果 leftMostPixel > x 然后 leftMostPixel = x

现在您有了 4 个边界值,您可以从中创建一个框架。要仅重绘目标矩形,您可以使用各种带有上下文的工具,但最简单的方法可能是创建具有边界矩形大小的 View ,然后在其上放置一个具有原始图像大小的 ImageView ,并创建 View 的屏幕截图。 ImageView 原点必须减去有界矩形的原点(我们将它放在屏幕外一点)。

不过,您可能会遇到一些与图像方向有关的问题。如果图像的方向不是 up ,则原始数据将不遵守该方向。所以你需要在创建有界矩形时考虑到这一点......或者首先重绘图像以使其方向正确......或者你甚至可以创建一个带有 RGBA 数据的子缓冲区并创建 CGImage 来自这些数据并将相同的方向应用于输出 UIImage 与输入相同。

所以在得到边界之后有相当多的程序。有些速度较慢,有些需要更多内存,有些根本难以编码并且存在边缘情况。

关于ios - 获取图像的像素值并裁剪图像的黑色部分 : Objective C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36004548/

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