gpt4 book ai didi

swift - 如何在 swift 中保存和检索 svg 图像。

转载 作者:行者123 更新时间:2023-11-28 08:08:54 33 4
gpt4 key购买 nike

我是 SVG 图像使用的新手。我在 iOS 中使用了 svg 图像。我使用 SVGKLayeredImageView 获取 CALayer。并更改 SVG 图像不同部分的颜色。现在我坚持这一点,如何使用修改后的图层在本地保存图像。这是我的代码。请审查它并给我好的意见。提前致谢。

var layer = CALayer()

let svgImage = SVGKImage(named: "Bella_1.svg")

let imageView: SVGKLayeredImageView? = SVGKLayeredImageView.init(svgkImage: svgImage)
imageView?.sizeToFit()
Character_view.addSubview(imageView!)

layer = (imageView?.layer)!

func haircolor_Selection() {
for subLayer: CALayer in (layer.sublayers)!
{
print("%@", subLayer.self)
for subSubLayer: CALayer in subLayer.sublayers!
{
print("%@", subSubLayer.self)
for subSubSubLayer: CALayer in subSubLayer.sublayers!
{
print("%@", subSubSubLayer.self)
for subSubSub1Layer: CALayer in subSubSubLayer.sublayers! {
print("%@", subSubSub1Layer.self)
if(subSubSub1Layer.name == "hair")
{
for subHairLayer: CALayer in subSubSub1Layer.sublayers!{
print("$@", subHairLayer.self)

if(subHairLayer.name == "main-colour_1_")
{

changeFillColorRecursively(sublayers: [subHairLayer], color: image_Color)
}
}

}

}
}
}
}

}
func changeFillColorRecursively(sublayers: [CALayer], color: UIColor) {
for layer_object in sublayers {
if let l = layer_object as? CAShapeLayer {
l.fillColor = color.cgColor
}
if let l = layer_object as? CALayer, let sub = l.sublayers {
changeFillColorRecursively(sublayers: sub, color: color)
}
}
}

我想保存这个修改后的 svg 图片,请给出答案。等待回复。

最佳答案

使用 SVGKExporterNSData 获取 NSData 对象,然后使用 NSDatawrite< 将其写入文件 方法。类似(注意:未测试):

let data = SVGKExporterNSData.exportAsNSData(image: svgImage)
data.write(toFile: filePath, atomically: true)

此外,不要使用所有用于获取“头发”层的嵌套循环,而是查看 SVGKImage 上的 layerWithIdentifier 方法。 this list of SVGKit recipes 中有一个示例-- 在该页面上查找“查找从特定 SVGElement 生成的 CALayer”。

关于swift - 如何在 swift 中保存和检索 svg 图像。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44306905/

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