Skip to content

Commit b9af364

Browse files
committed
Remove the unused image size and aspect ratio context option, using UIImageView/NSImageView built in method instead
1 parent 6843974 commit b9af364

File tree

7 files changed

+15
-68
lines changed

7 files changed

+15
-68
lines changed

Example/SDWebImageSVGCoder-Example-macOS/ViewController.m

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,28 +18,30 @@ - (void)viewDidLoad {
1818
// Do any additional setup after loading the view.
1919
SDImageSVGCoder *SVGCoder = [SDImageSVGCoder sharedCoder];
2020
[[SDImageCodersManager sharedManager] addCoder:SVGCoder];
21-
NSURL *SVGURL = [NSURL URLWithString:@"https://upload.wikimedia.org/wikipedia/commons/1/14/Mahuri.svg"];
22-
NSURL *SVGURL2 = [NSURL URLWithString:@"https://upload.wikimedia.org/wikipedia/commons/6/67/Firefox_Logo%2C_2017.svg"];
21+
NSURL *svgURL = [NSURL URLWithString:@"https://dev.w3.org/SVG/tools/svgweb/samples/svg-files/w3c.svg"];
22+
NSURL *svgURL2 = [NSURL URLWithString:@"https://dev.w3.org/SVG/tools/svgweb/samples/svg-files/wikimedia.svg"];
2323

2424
CGSize screenSize = self.view.bounds.size;
2525

2626
UIImageView *imageView1 = [[UIImageView alloc] init];
2727
imageView1.frame = CGRectMake(0, 0, screenSize.width / 2, screenSize.height);
28+
imageView1.imageScaling = NSImageScaleProportionallyUpOrDown;
2829

2930
UIImageView *imageView2 = [[UIImageView alloc] init];
3031
imageView2.frame = CGRectMake(screenSize.width / 2, 0, screenSize.width / 2, screenSize.height);
32+
imageView2.imageScaling = NSImageScaleProportionallyUpOrDown;
3133

3234
[self.view addSubview:imageView1];
3335
[self.view addSubview:imageView2];
3436

35-
[imageView1 sd_setImageWithURL:SVGURL placeholderImage:nil options:SDWebImageRetryFailed completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
37+
[imageView1 sd_setImageWithURL:svgURL placeholderImage:nil options:SDWebImageRetryFailed completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
3638
if (image) {
3739
NSLog(@"SVG load success");
3840
NSData *svgData = [image sd_imageDataAsFormat:SDImageFormatSVG];
3941
NSAssert(svgData.length > 0, @"SVG Data should exist");
4042
}
4143
}];
42-
[imageView2 sd_setImageWithURL:SVGURL2 placeholderImage:nil options:SDWebImageRetryFailed context:@{SDWebImageContextSVGImageSize : @(imageView2.bounds.size)} progress:nil completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
44+
[imageView2 sd_setImageWithURL:svgURL2 placeholderImage:nil options:SDWebImageRetryFailed completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
4345
if (image) {
4446
NSLog(@"SVG load animation success");
4547
[NSAnimationContext runAnimationGroup:^(NSAnimationContext * _Nonnull context) {

Example/SDWebImageSVGCoder/SDViewController.m

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,26 +22,22 @@ - (void)viewDidLoad
2222

2323
SDImageSVGCoder *SVGCoder = [SDImageSVGCoder sharedCoder];
2424
[[SDImageCodersManager sharedManager] addCoder:SVGCoder];
25-
NSURL *svgURL = [NSURL URLWithString:@"https://upload.wikimedia.org/wikipedia/commons/6/67/Firefox_Logo%2C_2017.svg"];
26-
NSURL *svgURL2 = [NSURL URLWithString:@"https://upload.wikimedia.org/wikipedia/commons/2/2d/Sample_SVG_file%2C_signature.svg"];
25+
NSURL *svgURL = [NSURL URLWithString:@"https://dev.w3.org/SVG/tools/svgweb/samples/svg-files/w3c.svg"];
26+
NSURL *svgURL2 = [NSURL URLWithString:@"https://dev.w3.org/SVG/tools/svgweb/samples/svg-files/wikimedia.svg"];
2727
NSURL *svgURL3 = [NSURL URLWithString:@"https://simpleicons.org/icons/github.svg"];
2828

2929
CGSize screenSize = [UIScreen mainScreen].bounds.size;
3030

31-
// `SVGKLayeredImageView`, best on performance and do actually vector image rendering (translate SVG to CALayer tree).
3231
UIImageView *imageView1 = [[UIImageView alloc] init];
3332
imageView1.frame = CGRectMake(0, 0, screenSize.width, screenSize.height / 2);
34-
// imageView1.sd_adjustContentMode = YES; // make `contentMode` works
35-
imageView1.contentMode = UIViewContentModeScaleAspectFill;
36-
imageView1.clipsToBounds = YES;
33+
imageView1.contentMode = UIViewContentModeScaleAspectFit;
3734

38-
// `SVGKFastImageView`, draw SVG as bitmap dynamically when size changed.
3935
UIImageView *imageView2 = [[UIImageView alloc] init];
4036
imageView2.frame = CGRectMake(0, screenSize.height / 2, screenSize.width, screenSize.height / 2);
41-
imageView2.clipsToBounds = YES;
37+
imageView2.contentMode = UIViewContentModeScaleAspectFill;
4238

43-
// `UIImageView`, draw SVG as bitmap image with fixed size, like PNG.
4439
UIImageView *imageView3 = [[UIImageView alloc] initWithFrame:CGRectMake(screenSize.width - 100, screenSize.height - 100, 100, 100)];
40+
imageView2.contentMode = UIViewContentModeScaleToFill;
4541

4642
[self.view addSubview:imageView1];
4743
[self.view addSubview:imageView2];
@@ -59,7 +55,6 @@ - (void)viewDidLoad
5955
NSLog(@"SVGKFastImageView SVG load success");
6056
}
6157
}];
62-
// on iOS 13, UIImageView supports SVG vector scale. On iOS 12, this will fallback bitmap representation
6358
[imageView3 sd_setImageWithURL:svgURL3 placeholderImage:nil options:SDWebImageRetryFailed context:nil progress:nil completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
6459
if (image) {
6560
NSLog(@"SVG load animation success");

SDWebImageSVGCoder.xcodeproj/project.pbxproj

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,27 +9,19 @@
99
/* Begin PBXBuildFile section */
1010
32407BF723799A8A00F9AFA4 /* SDImageSVGCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 32B6133C2170AB0F00DBD6ED /* SDImageSVGCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
1111
32407BF823799A8A00F9AFA4 /* SDImageSVGCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 32B613372170AB0F00DBD6ED /* SDImageSVGCoder.m */; };
12-
32407BF923799A8A00F9AFA4 /* SDWebImageSVGCoderDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 32B6133B2170AB0F00DBD6ED /* SDWebImageSVGCoderDefine.h */; settings = {ATTRIBUTES = (Public, ); }; };
13-
32407BFA23799A8A00F9AFA4 /* SDWebImageSVGCoderDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = 32B6133D2170AB0F00DBD6ED /* SDWebImageSVGCoderDefine.m */; };
1412
32407BFB23799A9200F9AFA4 /* SDWebImageSVGCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 32B613492170AB1600DBD6ED /* SDWebImageSVGCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
1513
32407BFD23799AC400F9AFA4 /* SDWebImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32407BFC23799AC400F9AFA4 /* SDWebImage.framework */; };
1614
32407BFE23799AC400F9AFA4 /* SDWebImage.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 32407BFC23799AC400F9AFA4 /* SDWebImage.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
1715
328C14BE2184CEE7006B0C4A /* SDImageSVGCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 32B6133C2170AB0F00DBD6ED /* SDImageSVGCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
1816
328C14BF2184CEE7006B0C4A /* SDImageSVGCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 32B613372170AB0F00DBD6ED /* SDImageSVGCoder.m */; };
19-
328C14C22184CEE7006B0C4A /* SDWebImageSVGCoderDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 32B6133B2170AB0F00DBD6ED /* SDWebImageSVGCoderDefine.h */; settings = {ATTRIBUTES = (Public, ); }; };
20-
328C14C32184CEE7006B0C4A /* SDWebImageSVGCoderDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = 32B6133D2170AB0F00DBD6ED /* SDWebImageSVGCoderDefine.m */; };
2117
328C14C62184CEE8006B0C4A /* SDImageSVGCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 32B6133C2170AB0F00DBD6ED /* SDImageSVGCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
2218
328C14C72184CEE8006B0C4A /* SDImageSVGCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 32B613372170AB0F00DBD6ED /* SDImageSVGCoder.m */; };
23-
328C14CA2184CEE8006B0C4A /* SDWebImageSVGCoderDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 32B6133B2170AB0F00DBD6ED /* SDWebImageSVGCoderDefine.h */; settings = {ATTRIBUTES = (Public, ); }; };
24-
328C14CB2184CEE8006B0C4A /* SDWebImageSVGCoderDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = 32B6133D2170AB0F00DBD6ED /* SDWebImageSVGCoderDefine.m */; };
2519
328C14CE2184CEF3006B0C4A /* SDWebImageSVGCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 32B613492170AB1600DBD6ED /* SDWebImageSVGCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
2620
328C14CF2184CEF3006B0C4A /* SDWebImageSVGCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 32B613492170AB1600DBD6ED /* SDWebImageSVGCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
2721
328C14D72184D13B006B0C4A /* SDWebImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 328C14D62184D13B006B0C4A /* SDWebImage.framework */; };
2822
328C14D92184D151006B0C4A /* SDWebImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 328C14D02184D111006B0C4A /* SDWebImage.framework */; };
2923
32B613402170AB0F00DBD6ED /* SDImageSVGCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 32B613372170AB0F00DBD6ED /* SDImageSVGCoder.m */; };
30-
32B613442170AB0F00DBD6ED /* SDWebImageSVGCoderDefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 32B6133B2170AB0F00DBD6ED /* SDWebImageSVGCoderDefine.h */; settings = {ATTRIBUTES = (Public, ); }; };
3124
32B613452170AB0F00DBD6ED /* SDImageSVGCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 32B6133C2170AB0F00DBD6ED /* SDImageSVGCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
32-
32B613462170AB0F00DBD6ED /* SDWebImageSVGCoderDefine.m in Sources */ = {isa = PBXBuildFile; fileRef = 32B6133D2170AB0F00DBD6ED /* SDWebImageSVGCoderDefine.m */; };
3325
32B6134A2170AB1600DBD6ED /* SDWebImageSVGCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 32B613492170AB1600DBD6ED /* SDWebImageSVGCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
3426
32B6134F2170B17200DBD6ED /* SDWebImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 32B6134E2170B17200DBD6ED /* SDWebImage.framework */; };
3527
/* End PBXBuildFile section */
@@ -59,9 +51,7 @@
5951
32B613192170AA2900DBD6ED /* SDWebImageSVGCoder.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SDWebImageSVGCoder.framework; sourceTree = BUILT_PRODUCTS_DIR; };
6052
32B613242170AA9300DBD6ED /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Module/Info.plist; sourceTree = "<group>"; };
6153
32B613372170AB0F00DBD6ED /* SDImageSVGCoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDImageSVGCoder.m; sourceTree = "<group>"; };
62-
32B6133B2170AB0F00DBD6ED /* SDWebImageSVGCoderDefine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDWebImageSVGCoderDefine.h; sourceTree = "<group>"; };
6354
32B6133C2170AB0F00DBD6ED /* SDImageSVGCoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDImageSVGCoder.h; sourceTree = "<group>"; };
64-
32B6133D2170AB0F00DBD6ED /* SDWebImageSVGCoderDefine.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDWebImageSVGCoderDefine.m; sourceTree = "<group>"; };
6555
32B613492170AB1600DBD6ED /* SDWebImageSVGCoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDWebImageSVGCoder.h; path = Module/SDWebImageSVGCoder.h; sourceTree = "<group>"; };
6656
32B6134C2170B16400DBD6ED /* SVGKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SVGKit.framework; path = Carthage/Build/iOS/SVGKit.framework; sourceTree = "<group>"; };
6757
32B6134E2170B17200DBD6ED /* SDWebImage.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDWebImage.framework; path = Carthage/Build/iOS/SDWebImage.framework; sourceTree = "<group>"; };
@@ -139,8 +129,6 @@
139129
children = (
140130
32B6133C2170AB0F00DBD6ED /* SDImageSVGCoder.h */,
141131
32B613372170AB0F00DBD6ED /* SDImageSVGCoder.m */,
142-
32B6133B2170AB0F00DBD6ED /* SDWebImageSVGCoderDefine.h */,
143-
32B6133D2170AB0F00DBD6ED /* SDWebImageSVGCoderDefine.m */,
144132
);
145133
path = Classes;
146134
sourceTree = "<group>";
@@ -167,7 +155,6 @@
167155
buildActionMask = 2147483647;
168156
files = (
169157
32407BFB23799A9200F9AFA4 /* SDWebImageSVGCoder.h in Headers */,
170-
32407BF923799A8A00F9AFA4 /* SDWebImageSVGCoderDefine.h in Headers */,
171158
32407BF723799A8A00F9AFA4 /* SDImageSVGCoder.h in Headers */,
172159
);
173160
runOnlyForDeploymentPostprocessing = 0;
@@ -177,7 +164,6 @@
177164
buildActionMask = 2147483647;
178165
files = (
179166
328C14C62184CEE8006B0C4A /* SDImageSVGCoder.h in Headers */,
180-
328C14CA2184CEE8006B0C4A /* SDWebImageSVGCoderDefine.h in Headers */,
181167
328C14CE2184CEF3006B0C4A /* SDWebImageSVGCoder.h in Headers */,
182168
);
183169
runOnlyForDeploymentPostprocessing = 0;
@@ -186,7 +172,6 @@
186172
isa = PBXHeadersBuildPhase;
187173
buildActionMask = 2147483647;
188174
files = (
189-
32B613442170AB0F00DBD6ED /* SDWebImageSVGCoderDefine.h in Headers */,
190175
32B613452170AB0F00DBD6ED /* SDImageSVGCoder.h in Headers */,
191176
32B6134A2170AB1600DBD6ED /* SDWebImageSVGCoder.h in Headers */,
192177
);
@@ -196,7 +181,6 @@
196181
isa = PBXHeadersBuildPhase;
197182
buildActionMask = 2147483647;
198183
files = (
199-
328C14C22184CEE7006B0C4A /* SDWebImageSVGCoderDefine.h in Headers */,
200184
328C14BE2184CEE7006B0C4A /* SDImageSVGCoder.h in Headers */,
201185
328C14CF2184CEF3006B0C4A /* SDWebImageSVGCoder.h in Headers */,
202186
);
@@ -358,15 +342,13 @@
358342
buildActionMask = 2147483647;
359343
files = (
360344
32407BF823799A8A00F9AFA4 /* SDImageSVGCoder.m in Sources */,
361-
32407BFA23799A8A00F9AFA4 /* SDWebImageSVGCoderDefine.m in Sources */,
362345
);
363346
runOnlyForDeploymentPostprocessing = 0;
364347
};
365348
328C14B22184C856006B0C4A /* Sources */ = {
366349
isa = PBXSourcesBuildPhase;
367350
buildActionMask = 2147483647;
368351
files = (
369-
328C14CB2184CEE8006B0C4A /* SDWebImageSVGCoderDefine.m in Sources */,
370352
328C14C72184CEE8006B0C4A /* SDImageSVGCoder.m in Sources */,
371353
);
372354
runOnlyForDeploymentPostprocessing = 0;
@@ -375,7 +357,6 @@
375357
isa = PBXSourcesBuildPhase;
376358
buildActionMask = 2147483647;
377359
files = (
378-
32B613462170AB0F00DBD6ED /* SDWebImageSVGCoderDefine.m in Sources */,
379360
32B613402170AB0F00DBD6ED /* SDImageSVGCoder.m in Sources */,
380361
);
381362
runOnlyForDeploymentPostprocessing = 0;
@@ -384,7 +365,6 @@
384365
isa = PBXSourcesBuildPhase;
385366
buildActionMask = 2147483647;
386367
files = (
387-
328C14C32184CEE7006B0C4A /* SDWebImageSVGCoderDefine.m in Sources */,
388368
328C14BF2184CEE7006B0C4A /* SDImageSVGCoder.m in Sources */,
389369
);
390370
runOnlyForDeploymentPostprocessing = 0;

SDWebImageSVGCoder/Classes/SDImageSVGCoder.m

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
//
77

88
#import "SDImageSVGCoder.h"
9-
#import "SDWebImageSVGCoderDefine.h"
109
#import <dlfcn.h>
1110
#import <objc/runtime.h>
1211

@@ -107,7 +106,10 @@ - (BOOL)canEncodeToFormat:(SDImageFormat)format {
107106
return format == SDImageFormatSVG;
108107
}
109108

110-
- (NSData *)encodedDataWithImage:(UIImage *)image format:(SDImageFormat)format options:(SDImageCoderOptions *)options { // SVGKImage wrapper
109+
- (NSData *)encodedDataWithImage:(UIImage *)image format:(SDImageFormat)format options:(SDImageCoderOptions *)options {
110+
if (!image) {
111+
return nil;
112+
}
111113
if (![self.class supportsVectorSVGImage]) {
112114
return nil;
113115
}

SDWebImageSVGCoder/Classes/SDWebImageSVGCoderDefine.h

Lines changed: 0 additions & 20 deletions
This file was deleted.

SDWebImageSVGCoder/Classes/SDWebImageSVGCoderDefine.m

Lines changed: 0 additions & 11 deletions
This file was deleted.

SDWebImageSVGCoder/Module/SDWebImageSVGCoder.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
#endif
1111

1212
#import <SDWebImageSVGCoder/SDImageSVGCoder.h>
13-
#import <SDWebImageSVGCoder/SDWebImageSVGCoderDefine.h>
1413

1514
FOUNDATION_EXPORT double SDWebImageSVGCoderVersionNumber;
1615
FOUNDATION_EXPORT const unsigned char SDWebImageSVGCoderVersionString[];

0 commit comments

Comments
 (0)