iOS中使⽤SVG格式的图⽚svg图
SVG 是⼀种基于 XML 语法的图像格式,全称是可缩放⽮量图(Scalable Vector Graphics)。其他图像格式都是基于像素处理的,SVG 则是属于对图像的形状描述,所以它本质上是⽂本⽂件,体积较⼩,且不管放⼤多少倍都不会失真。
在iOS中可以使⽤webView来加载和显⽰SVG格式的图⽚。代码如下:
NSString *svgName = @"fileName.svg";
NSString *svgPath = [[NSBundle mainBundle] pathForResource:svgName ofType:nil];
NSData *svgData = [NSData dataWithContentsOfFile:svgPath];
NSString *reasourcePath = [[NSBundle mainBundle] resourcePath];
NSURL *baseUrl = [[NSURL alloc] initFileURLWithPath:reasourcePath isDirectory:true];
UIWebView *webView = [[UIWebView alloc] init];
webView.frame = CGRectMake(0, 0, width, height);
[webView loadData:svgData MIMEType:@"image/svg+xml" textEncodingName:@"UTF-8" baseURL:baseUrl];
由于上述使⽤⽅式在iOS中是⾮常不⽅便的,现在⼀般⼤多采⽤SVGKit这个框架来处理和显⽰SVG格式的图⽚。[官⽅地址](github/SVGKit/SVGKit)
⾸先使⽤pod引⼊类库
pod 'SVGKit'
然后在代码中需要显⽰的图⽚的地⽅:
NSString *svgName = @"jia";
SVGKImage *svgImage = [SVGKImage imageNamed:svgName];
SVGKLayeredImageView *svgView = [[SVGKLayeredImageView alloc] initWithSVGKImage:svgImage];
svgView.backgroundColor = [UIColor clearColor];
[self.view addSubview:svgView];
svgView.frame = CGRectMake(100, 200, 44, 44);
SVG格式图⽚的⼤⼩对⽐,⼀般在iOS中现在都会保留2种分辨率的图⽚,俗称2倍图和3倍图。如果使⽤SVG格式图⽚的话,就只需要⼀张图了。下⾯是两种格式图⽚的⼤⼩对⽐。这次使⽤的就是⼀个⼗字图标为例。
如果单纯从⼤⼩来对⽐的话,SVG格式的图⽚并不会占有太多的优势,既然存在这种格式的图⽚,本着存在即合理的思维来探讨,那么SVG格式的图⽚到底有哪些优势呢?
百度百科中给出来了⼏个SVG格式的特点,这⾥简单概述⼀下。我觉得显⽰效果和⼤图的体积优势可能还是⽐较明显的,对于⼩图⽽⾔,我们上⾯探讨的⽬前在体积⽅⾯并没有显⽰出来多⼩的体积。
格式优势:1、基于xml 2、采⽤⽂本来描述对象 3、具有交互性和动态性 4、完全⽀持dom
⽐较优势: 1、任意缩放 2、⽂本独⽴ 3、较⼩⽂件(总体来讲,SVG⽂件⽐那些GIF和JPEG格式的⽂件要⼩很多) 4、超强显⽰效果(SVG图像在屏幕上总是边缘清晰,它的清晰度适合任何屏幕分辨率和打印分辨率。) 5、超级颜⾊控制(SVG图像提供⼀个1 600万种颜⾊的调⾊板) 6、交互和智能化。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论