Skip to content

Commit a3933dc

Browse files
committed
Update to support the new context option from SDWebImage 5.5.0, deprecated the old one
1 parent 5cbe93c commit a3933dc

File tree

7 files changed

+46
-6
lines changed

7 files changed

+46
-6
lines changed

Cartfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
github "SDWebImage/SDWebImage" ~> 5.0
1+
github "SDWebImage/SDWebImage" ~> 5.5

Cartfile.resolved

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
github "SDWebImage/SDWebImage" "5.0.2"
1+
github "SDWebImage/SDWebImage" "5.5.2"

Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ let package = Package(
1717
dependencies: [
1818
// Dependencies declare other packages that this package depends on.
1919
// .package(url: /* package url */, from: "1.0.0"),
20-
.package(url: "https://github.com/SDWebImage/SDWebImage.git", from: "5.1.0")
20+
.package(url: "https://github.com/SDWebImage/SDWebImage.git", from: "5.5.0")
2121
],
2222
targets: [
2323
// Targets are the basic building blocks of a package. A target can define a module or a test suite.

SDWebImagePDFCoder.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,5 +39,5 @@ SDWebImageSVGCoder is a SVG coder plugin for SDWebImage framework, which provide
3939
'DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER' => 'NO'
4040
}
4141

42-
s.dependency 'SDWebImage', '~> 5.0'
42+
s.dependency 'SDWebImage', '~> 5.5'
4343
end

SDWebImagePDFCoder/Classes/SDImagePDFCoder.m

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,25 +55,42 @@ - (UIImage *)decodedImageWithData:(NSData *)data options:(SDImageCoderOptions *)
5555
BOOL prefersBitmap = NO;
5656
CGSize imageSize = CGSizeZero;
5757
BOOL preserveAspectRatio = YES;
58+
59+
#pragma clang diagnostic push
60+
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
5861
// Parse args
5962
SDWebImageContext *context = options[SDImageCoderWebImageContext];
6063
if (context[SDWebImageContextPDFPageNumber]) {
6164
pageNumber = [context[SDWebImageContextPDFPageNumber] unsignedIntegerValue];
65+
} else if (options[SDImageCoderDecodePDFPageNumber]) {
66+
pageNumber = [options[SDImageCoderDecodePDFPageNumber] unsignedIntegerValue];
6267
}
6368
if (context[SDWebImageContextPDFPrefersBitmap]) {
6469
prefersBitmap = [context[SDWebImageContextPDFPrefersBitmap] boolValue];
70+
} else if (options[SDImageCoderDecodePDFPrefersBitmap]) {
71+
prefersBitmap = [options[SDImageCoderDecodePDFPrefersBitmap] boolValue];
6572
}
6673
if (context[SDWebImageContextPDFImageSize]) {
6774
NSValue *sizeValue = context[SDWebImageContextPDFImageSize];
6875
#if SD_MAC
6976
imageSize = sizeValue.sizeValue;
7077
#else
7178
imageSize = sizeValue.CGSizeValue;
79+
#endif
80+
} else if (options[SDImageCoderDecodeThumbnailPixelSize]) {
81+
NSValue *sizeValue = options[SDImageCoderDecodeThumbnailPixelSize];
82+
#if SD_MAC
83+
imageSize = sizeValue.sizeValue;
84+
#else
85+
imageSize = sizeValue.CGSizeValue;
7286
#endif
7387
}
7488
if (context[SDWebImageContextPDFImagePreserveAspectRatio]) {
7589
preserveAspectRatio = [context[SDWebImageContextPDFImagePreserveAspectRatio] boolValue];
90+
} else if (options[SDImageCoderDecodePreserveAspectRatio]) {
91+
preserveAspectRatio = [context[SDImageCoderDecodePreserveAspectRatio] boolValue];
7692
}
93+
#pragma clang diagnostic pop
7794

7895
UIImage *image;
7996
if (!prefersBitmap && [self.class supportsVectorPDFImage]) {

SDWebImagePDFCoder/Classes/SDWebImagePDFCoderDefine.h

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,34 @@ FOUNDATION_EXPORT SDWebImageContextOption _Nonnull const SDWebImageContextPDFPre
3232
@note For iOS/tvOS 11+, you don't need this option and it will be ignored. Because UIImage support built-in vector rendering and scaling for PDF. Changing imageView's contentMode and bounds instead.
3333
@note For macOS user. Changing imageViews' imageScaling and bounds instead.
3434
*/
35-
FOUNDATION_EXPORT SDWebImageContextOption _Nonnull const SDWebImageContextPDFImageSize;
35+
FOUNDATION_EXPORT SDWebImageContextOption _Nonnull const SDWebImageContextPDFImageSize __attribute__((deprecated("Use the new context option (for WebCache category), or coder option (for SDImageCoder protocol) instead", "SDWebImageContextImageThumbnailPixelSize")));
3636

3737
/**
3838
A BOOL value which specify the whether PDF image should keep aspect ratio during image loading. Because when you specify image size via `SDWebImageContextPDFImageSize`, we need to know whether to keep aspect ratio or not when image size is not equal to PDF cropBox size. (NSNumber)
3939
If you don't provide this value, use YES for default value.
4040
@note For iOS/tvOS 11+, you don't need this option and it will be ignored. Because UIImage support built-in vector rendering and scaling for PDF. Changing imageView's contentMode and bounds instead.
4141
@note For macOS user. Changing imageViews' imageScaling and bounds instead.
4242
*/
43-
FOUNDATION_EXPORT SDWebImageContextOption _Nonnull const SDWebImageContextPDFImagePreserveAspectRatio;
43+
FOUNDATION_EXPORT SDWebImageContextOption _Nonnull const SDWebImageContextPDFImagePreserveAspectRatio __attribute__((deprecated("Use the new context option (for WebCache category), or coder option (for SDImageCoder protocol) instead", "SDWebImageContextImagePreserveAspectRatio")));
44+
45+
#pragma mark - Coder Options
46+
/**
47+
A unsigned interger raw value which specify the desired PDF image page number. Because PDF can contains mutiple pages. The page number index is started with 0. (NSNumber)
48+
If you don't provide this value, use 0 (the first page) instead.
49+
@note works for `SDImageCoder`
50+
*/
51+
FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderDecodePDFPageNumber;
52+
53+
/**
54+
A BOOL value which specify whether we prefer the actual bitmap representation instead of vector representation for PDF image. This is because the UIImage on iOS 11+ (NSImgae on macOS) can use the vector image format, which support dynamic scale without losing any detail. However, for some image processing logic, user may need the actual bitmap representation to manage pixels. Also, for lower firmware on iOS, the `UIImage` does not support vector rendering, user may want to handle them using the same code. (NSNumber)
55+
If you don't provide this value, use NO for default value and prefer the vector format when possible.
56+
@note works for `SDImageCoder`
57+
*/
58+
FOUNDATION_EXPORT SDImageCoderOption _Nonnull const SDImageCoderDecodePDFPrefersBitmap;
59+
60+
/**
61+
`SDImageCoderDecodeThumnailPixelSize`: The same as context option `SDWebImageContextImageThumbnailPixelSize`
62+
`SDImageCoderDecodePreserveAspectRatio`: The same as context option `SDWebImageContextImagePreserveAspectRatio`
63+
*/
4464

4565
NS_ASSUME_NONNULL_END

SDWebImagePDFCoder/Classes/SDWebImagePDFCoderDefine.m

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,6 @@
1111
SDWebImageContextOption _Nonnull const SDWebImageContextPDFPrefersBitmap = @"pdfPrefersBitmap";
1212
SDWebImageContextOption _Nonnull const SDWebImageContextPDFImageSize = @"pdfImageSize";
1313
SDWebImageContextOption _Nonnull const SDWebImageContextPDFImagePreserveAspectRatio = @"pdfImagePreserveAspectRatio";
14+
15+
SDImageCoderOption _Nonnull const SDImageCoderDecodePDFPageNumber = @"decodePDFPageNumber";
16+
SDImageCoderOption _Nonnull const SDImageCoderDecodePDFPrefersBitmap = @"decodePDFPrefersBitmap";

0 commit comments

Comments
 (0)