sách gpt4 ăn đã đi

ios - 裁剪 CIImage

In lại 作者:搜寻专家 更新时间:2023-10-31 08:25:13 33 4
mua khóa gpt4 giày nike

我有一个接受 Giao diện người dùng 的类,用它初始化一个 CIImage,如下所示:

workingImage = CIImage.init(image: baseImage!)

然后使用图像以 3x3 的模式从中裁剪出 9 个相邻的正方形 - 在一个循环中:

for x in 0..<3
{
for y in 0..<3
{

croppingRect = CGRect(x: CGFloat(Double(x) * sideLength + startPointX),
y: CGFloat(Double(y) * sideLength + startPointY),
width: CGFloat(sideLength),
height: CGFloat(sideLength))
let tmpImg = (workingImage?.cropping(to: croppingRect))!
}
}

那些 tmpImgs 被插入到一个表中并稍后使用,但这不是重点。

此代码适用于 IOS 9IOS 10 模拟器,但不适用于实际 IOS 10 设备 .生成的图像要么全是空的,要么其中一个像它应该是的一半,其余的又是空的。

IOS 10 不应该这样做吗?

câu trả lời hay nhất

问题的核心是通过 CIImage 不是裁剪 UIImage 的方式。一方面,从 CIImage 回到 UIImage 是一件复杂的事情。另一方面,整个往返行程是不必要的。

如何裁剪

要裁剪图像,创建所需裁剪大小的图像图形上下文,并在 UIImage 上调用 draw(at:) 以在相对于图形上下文的所需点绘制它,以便图像的所需部分落入上下文中。现在提取生成的新图像并关闭上下文。

为了演示,我将裁剪到您要裁剪到的三分之一中的一个,即右下三分之一:

let sz = baseImage.size
UIGraphicsBeginImageContextWithOptions(
CGSize(width:sz.width/3.0, height:sz.height/3.0),
false, 0)
baseImage.draw(at:CGPoint(x: -sz.width/3.0*2.0, y: -sz.height/3.0*2.0))
let tmpImg = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()

原始图像(baseImage):

nhập mô tả hình ảnh ở đây

裁剪图像(tmpImg):

nhập mô tả hình ảnh ở đây

其他部分完全平行。

关于ios - 裁剪 CIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40792409/

33 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress