gpt4 book ai didi

ios - 有没有办法在我的 iOS 应用程序中创建高分辨率图像?

转载 作者:行者123 更新时间:2023-11-29 01:32:44 26 4
gpt4 key购买 nike

我有一个生成各种图像/绘图的 iOS 应用程序,然后我使用 UIImage 类将其保存到设备。图像最终的分辨率相当低 - 有没有办法强制使用更高的分辨率,或者甚至生成要从 iOS 应用程序保存的矢量?

编辑:这里是代码如何运行的一些细节

为了创建图像,我创建了多个片段 - CAShapeLayer() 和 UIBezierPath()。我将它们作为子层添加到其中创建了图像的 UIView,简写如下:

for i in 0...segmentCounter-1
{
let path = UIBezierPath() // this is generated in a function with some funky logic for points, colors, etc - UIBezierPath() is a placeholder
let shapeLayer = CAShapeLayer()
shapeLayer.opacity = 0.8;
shapeLayer.path = path.CGPath
self.layer.addSublayer(layer)
}

在运行几次并创建了一个具有多个图层的图像之后,我使用以下代码来保存图像:

    UIGraphicsBeginImageContextWithOptions(self.drawingView.layer.bounds.size, false, 0)

self.drawingView.drawViewHierarchyInRect(self.drawingView.layer.bounds, afterScreenUpdates: true)
let img:UIImage = UIGraphicsGetImageFromCurrentImageContext()
UIImageWriteToSavedPhotosAlbum(img, self, "image:didFinishSavingWithError:contextInfo:", nil)

最佳答案

如果要生成“矢量”文件,最简单的方法是生成 PDF。您可以使用 UIGraphicsBeginPDFContextToFileUIGraphicsBeginPDFContextToData 而不是 UIGraphicsBeginImageContextWithOptions。您可以找到有关使用此函数(以及您还需要调用的其他函数)的 Apple 文档 here .

如果您想生成具有更多像素的光栅图像,只需将较大的比例作为最后一个参数传递给 UIGraphicsBeginImageContextWithOptions 即可。您当前使用的零表示“当前设备主屏幕的比例”,因此它可能是 2(对于普通 Retina 屏幕)或 3(对于 iPhone 6 Plus 屏幕)。您可以传递任何您想要的号码。它不一定是整数。

关于ios - 有没有办法在我的 iOS 应用程序中创建高分辨率图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33287562/

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