Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于iOS的UIImage的SVG字符串_Ios_Objective C_Svg_Uiimageview_Uiimage - Fatal编程技术网

用于iOS的UIImage的SVG字符串

用于iOS的UIImage的SVG字符串,ios,objective-c,svg,uiimageview,uiimage,Ios,Objective C,Svg,Uiimageview,Uiimage,我尝试制作一个iOS应用程序,并将GithubAPI与SDWebImage一起使用。下面是获取“用户配置文件图像”的代码 这很有效 但是,当我尝试获取贡献热图图像时,我无法获取贡献热图的图像,因为贡献热图是“SVG字符串” 贡献热图在这里 然后,在研究之后,我尝试了“SVGKit”、“PocketSVG”、“SKUBezierPath+SVG”等等。但是这样的库对于SVG“字符串”不是很好,而是SVG“文件” 我可以通过使用这个URL获得一个热图SVG https://github.com/u

我尝试制作一个iOS应用程序,并将GithubAPI与SDWebImage一起使用。下面是获取“用户配置文件图像”的代码

这很有效

但是,当我尝试获取贡献热图图像时,我无法获取贡献热图的图像,因为贡献热图是“SVG字符串”

贡献热图在这里

然后,在研究之后,我尝试了“SVGKit”、“PocketSVG”、“SKUBezierPath+SVG”等等。但是这样的库对于SVG“字符串”不是很好,而是SVG“文件”

我可以通过使用这个URL获得一个热图SVG

https://github.com/users/(here is username)/contributions
这就是结果

我不能将此响应视为UIImage。我还尝试将responseData更改为NSData并转换UIImage,但它也无法正常工作

您能教我如何将“github贡献热图的SVG”视为UIImage吗?

包含一个SvgRender类,该类具有init方法initWithString:(NSString*)anSVG您可以使用以这种方式创建的渲染器告诉SVGDocumentView渲染SVG。我写了SVGgh

SvgRender类现在有一个
-(UIImage*)asImageWithSize:(CGSize)maximumSize和scale:(CGFloat)scale
方法,该方法将直接创建UIImage

在您的例子中,似乎没有得到完整的SVG文档,因为它缺少XML声明。因此,您可能应该获取该块并将其添加到基本XML前缀中,例如在Swift中:

let xmlPrefix  = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"
\"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">"

let documentString = xmlPrefix + serverImage

let renderer = SVGRenderer(string: documentString)
let image = renderer.asImageWithSize(CGSize(100, 100)), andScale:2.0)
让xmlPrefix=”
"
让documentString=xmlPrefix+serverImage
let renderer=svgrender(字符串:documentString)
设image=renderer.asImageWithSize(CGSize(100100)),比例:2.0)

请注意,我使用\字符来转义所有引号散列标记。我还没有编译这段代码,所以Swift可能有点不对劲

您好,所需字符串的格式是什么,我正在尝试使用您的库。举个例子就好了。感谢该格式是SVG文档。因此,您希望获取从服务器获得的字符串,获取块中的部分,并为其提供一个XML头。我会编辑一下我的回答。这是我做的,但我得到的是一个黑色矩形而不是图像(在浏览器上测试很好)。我有没有一种方法可以在便笺中显示我的代码?ThanksOK我用示例代码和SVG字符串添加了一个新问题。如果你能看看,那就太好了。
let xmlPrefix  = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"
\"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">"

let documentString = xmlPrefix + serverImage

let renderer = SVGRenderer(string: documentString)
let image = renderer.asImageWithSize(CGSize(100, 100)), andScale:2.0)