为什么我不能在 Swift 4 中使用 `SVGKit` 将 `svg` 数据转换为 UIImage?
Why can't I convert the `svg` data to UIImage using `SVGKit` in Swift 4?
我正在尝试使用 SVGKit
将我的 svg
图像数据转换为 UIImage
实例,但是当我尝试这样做时它崩溃了,并且出现了错误消息如下所示:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Asked to convert a Percentage value to a different type (5)'
这里是 svg
到 UIImage
转换的代码。
if let data = response.data {
if let image = SVGKImage(data: data) {
if let uiImageInstance = image.uiImage {
self.userImageView.image = uiImageInstance
}
}
}
它在这一行崩溃了
-> if let uiImageInstance = image.uiImage {
我正在使用 AlamofireImage
库从服务器下载我的图像数据。
我已检查我的 svg
数据是否在响应中。
仅供参考: 我的图像是头像字母和渐变背景的组合。
参考下图。
我的 svg 图片样本 URL: Link
有什么帮助吗?
提前致谢。
请执行以下操作:
- 首先,检查response.data(是否正确
您期待的格式?)
- 尝试使用 image.UIImage 而不是 image.uiImage
如果您的图像正在使用渐变效果,那么它在 SVGKit 中将不起作用。检查你的图片是否使用了渐变效果。
Apple's rendering DOES NOT ALLOW US to render this image correctly
using SVGKFastImageView, because Apple's renderInContext method -
according to Apple's docs - ignores Apple's own masking layers. Until
Apple fixes this bug, you should use SVGKLayeredImageView for this
particular SVG file (or avoid using gradients)
我正在尝试使用 SVGKit
将我的 svg
图像数据转换为 UIImage
实例,但是当我尝试这样做时它崩溃了,并且出现了错误消息如下所示:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Asked to convert a Percentage value to a different type (5)'
这里是 svg
到 UIImage
转换的代码。
if let data = response.data {
if let image = SVGKImage(data: data) {
if let uiImageInstance = image.uiImage {
self.userImageView.image = uiImageInstance
}
}
}
它在这一行崩溃了
-> if let uiImageInstance = image.uiImage {
我正在使用 AlamofireImage
库从服务器下载我的图像数据。
我已检查我的 svg
数据是否在响应中。
仅供参考: 我的图像是头像字母和渐变背景的组合。
参考下图。
我的 svg 图片样本 URL: Link
有什么帮助吗?
提前致谢。
请执行以下操作:
- 首先,检查response.data(是否正确 您期待的格式?)
- 尝试使用 image.UIImage 而不是 image.uiImage
如果您的图像正在使用渐变效果,那么它在 SVGKit 中将不起作用。检查你的图片是否使用了渐变效果。
Apple's rendering DOES NOT ALLOW US to render this image correctly using SVGKFastImageView, because Apple's renderInContext method - according to Apple's docs - ignores Apple's own masking layers. Until Apple fixes this bug, you should use SVGKLayeredImageView for this particular SVG file (or avoid using gradients)