【问题标题】:How to load .SVG image URL into image view in ios application using swift?如何使用 swift 将 .SVG 图像 URL 加载到 ios 应用程序中的图像视图中?
【发布时间】:2018-11-02 12:04:09
【问题描述】:

我想制作一张由我拍摄的具有透明背景的图像,并且应该只有图像的边缘。

然后我想改变该图像边缘的颜色。

所以建议我有什么办法可以做到这一点。

谢谢

更新

我的问题不是重复的,因为区别在于:

  1. 我只想将 svg url 加载到 imageView 而不是 webView
  2. 加载到图像视图中的 svg 图像的色调应该会发生变化。

【问题讨论】:

标签: ios swift svg


【解决方案1】:

用这个从url上传图片

func download(url:String) {

    let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0];

    let filePath="\(documentsPath)/img.svg"

    DispatchQueue.global(qos: .background).async {

        if let url = URL(string: "\(url)/img.svg"),

            let urlData = NSData(contentsOf: url) {

            DispatchQueue.main.async {

                urlData.write(toFile: filePath, atomically: true)

                print("done")

            }
        }
    }
}

如何使用

download(url: "https://yuordomin.com/nameimge.svg")

【讨论】:

  • 我不想上传,但我从 api 响应中获取了 svg url,并且我想在图像视图中显示该 url。
  • 抱歉不能为您服务
【解决方案2】:

编辑我的回答忽略了您明确想要SVG 图像的方面,对此感到抱歉;不过,您可以将图像转换为 PDF 并使用所描述的方法。


您可以使用UIImagerenderingMode 属性生成支持设置色调颜色的模板图像。这会将所有不透明的像素解释为“前景”,将被色调着色。

有两种方法:

  1. 通过打开属性检查器并将下拉列表Render as 设置为Template Image,在资产目录中设置图像的渲染模式。当您使用 UIImage(named:) 加载此图像时,您会自动将其作为模板图像。
  2. 当您已经拥有UIImage 实例时,您可以将其转换为模板图像:let templateImage = image.withRenderingMode(.alwaysTemplate)

在这两种情况下,您都可以使用templateImage.tintColor = yourColor 设置图像的色调颜色。

【讨论】:

  • 这里我将 .svg url 获取到 api 响应中,并且 .svg url 直接显示到我的图像视图中。是否可以直接在图像视图中显示?谢谢
猜你喜欢
  • 2021-08-17
  • 2017-04-08
  • 2015-11-04
  • 1970-01-01
  • 2018-05-23
  • 1970-01-01
  • 1970-01-01
  • 2018-06-21
相关资源
最近更新 更多