如何使用swift将.SVG图片网址加载到ios应用程序的图片视图中?

时间:2018-11-02 12:04:09

标签: ios swift svg

我想制作一张具有透明背景的图像,该图像可以被我捕获,并且应该只有图像的边缘。

然后我要更改该图像边缘的颜色。

所以建议我有什么办法。

谢谢

更新

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

  1. 我只想将svg网址加载到imageView中,而不要加载到webView中
  2. 应该更改加载到图像视图中的svg图像的色调颜色。

2 个答案:

答案 0 :(得分:1)

使用它从网址上传图片

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")

答案 1 :(得分:0)

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


您可以使用renderingMode的{​​{1}}属性来生成支持设置色调颜色的模板图像。这会将所有非透明像素解释为“前景”,将通过色泽着色。

有两种方法可以这样做:

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

在两种情况下,都可以使用let templateImage = image.withRenderingMode(.alwaysTemplate)设置图像的色彩。