Commit Graph

3362 Commits

Author SHA1 Message Date
DreamPiggy d0f3c39335
Merge pull request #3368 from dreampiggy/optimize_force_decode_solution
Added `SDImageCoder.defaultDecodeSolution` to control the force decode solution. Automatic by default
2022-07-16 19:33:46 +08:00
DreamPiggy a88e669422 Added SDImageCoderDecodeSolutionAutomatic, which check image format as well
This avoid the unwanted CMPhoto log
2022-07-16 18:03:11 +08:00
DreamPiggy 213a8b8def Added `SDImageCoder.defaultDecodeSolution` to control the force decode solution, defaults to CoreGraphics (the same as 5.12)
For user who want new UIKit solution, you can opt-in to change the `defaultDecodeSolution` case
2022-07-16 18:03:11 +08:00
DreamPiggy ff6b3b9bb5 Change only ImageIO decoded CGImage should enter the `Force Decode` logic
Others coder, like WebP, should not use this approach
2022-07-16 18:03:11 +08:00
DreamPiggy 3277824d43
Merge pull request #3372 from dreampiggy/bugfix_color_at_point_grayscale
Fix sd_colorAtPoint and sd_colorsWithRect support for grayscale image (white and alpha)
2022-07-16 18:01:54 +08:00
DreamPiggy 1ed76f4f47 Fix the bitmapInfo support for greyscale color, update test case 2022-07-16 17:43:48 +08:00
DreamPiggy 34236ac522 Fix sd_colorAtPoint and sd_colorsWithRect support for grayscale image (white and alpha)
This fix the test cases for #3368
2022-07-16 17:27:04 +08:00
DreamPiggy 4d4e631183
Merge pull request #3370 from dreampiggy/bugfix_pdf_draw_bitmap_dpi
Fix the PDF image without thumbnailPixelSize will result huge bitmap size, now fixed into 72 DPI matching PDFKit
2022-07-14 15:24:11 +08:00
DreamPiggy 2fe3879b15 Fix the case that provided DPI cause `kCGImagePropertyPixelWidth` return non-zero value
This will cause re-check thumbnail, and may result the wrong pixel size
2022-07-14 14:52:26 +08:00
DreamPiggy f1fe4ca8b8 Calculate the DPI based on PDF mediaBox, support thumbnailPixelSize
Move the vector code from ImageIOAnimatedCoder to ImageIOCoder, since it's not animatable :)
2022-07-13 18:18:21 +08:00
DreamPiggy f91d35ef8d Fix the PDF image without thumbnailPixelSize will result huge bitmap size, now fixed into 72 DPI matching PDFKit 2022-07-13 16:04:29 +08:00
DreamPiggy c4b8660bb3 Bumped version to 5.13.0
update CHANGELOG
2022-06-27 02:37:44 +08:00
DreamPiggy 0805bc0f4d
Merge pull request #3364 from dreampiggy/bugfix_thumbnail_full_loading_same_time_cache_issue
Fix the issue when thumbnail and full size loading at the same time, the thumbnail image will write to memory with wrong key
2022-06-27 02:33:45 +08:00
DreamPiggy 3358859b46 Fix the issue when thumbnail first and full size loading at the same time, the thumbnail image will write to memory with wrong key
The disk cache key is correct and does not get effected by this issue
2022-06-27 02:17:48 +08:00
DreamPiggy 282714883e Update the Demo project 2022-06-26 23:55:12 +08:00
DreamPiggy 16cf157658
Merge pull request #3363 from dreampiggy/fix_multiple_cancel_cache_callback_order
Fix the case when user cancel the image loading for same URL in sequence cause placeholder mass
2022-06-26 23:52:55 +08:00
DreamPiggy ad953cdcc5 Fix the case when user cancel the image loading for same URL in sequence cause placeholder mass
This PR introduce 2 API changes:
1. Cache query now return cache token and callback sync when called from main queue, unlike NSOperation always callback async
2. Expose the set image operation, and update the documentation behavior about that `SDWebImageDelayPlaceholder`
2022-06-26 20:04:51 +08:00
DreamPiggy d58a1006c2
Merge pull request #3362 from dreampiggy/behavior_thumbnail_store_cache
Feature: Change thumbnail cache behavior as expected, share cache through different loading pipeline without extra download
2022-06-26 15:29:55 +08:00
DreamPiggy 071a8934e3 Fix the assert case when loader callback nil image data 2022-06-26 00:29:24 +08:00
DreamPiggy 69acd5a158 Added all the 3 test cases
test17ThatThumbnailCacheQueryNotWriteToWrongKey
test18ThatThumbnailLoadingCanUseFullSizeCache
test19ThatDifferentThumbnailLoadShouldCallbackDifferentSize
2022-06-26 00:29:24 +08:00
DreamPiggy 31c4a09430 Fix one bug that callback the wrong cache type 2022-06-26 00:29:24 +08:00
DreamPiggy c47158362d Limit the re-deocde case only when image was downloaded, avoid when thumbnail hit cache 2022-06-26 00:29:24 +08:00
DreamPiggy ecac56b726 Use the new solution, store the original decode options, when multiple loading pipeline share the same URL callback, check it and re-decode if needed 2022-06-26 00:29:24 +08:00
DreamPiggy 911328c1b4 Fix the case when previous pipeline use thumbnail transformer use together, second pipeline use the full size loading 2022-06-23 19:37:47 +08:00
DreamPiggy 2c9290f109 Added sd_isThumbnail to mark metadata, avoid the case when full size image request re-use the image from thumbnail decoding for the same URL
I think this is a temp workaround
2022-06-23 19:19:23 +08:00
DreamPiggy e7e9268a7e Fix the case that query full size key with thumbnail, cause the write back of thumnail to memory cache with wrong key 2022-06-23 17:54:27 +08:00
DreamPiggy 613a2bf988 Opt the thumbnail cache behavior, now it prefers to store/query original data from disk, thumbnail image from memory
Separate the thumbnail from transformer, they are for different use case
2022-06-23 17:12:56 +08:00
DreamPiggy 0b661344fe
Merge pull request #3359 from dreampiggy/api_thumbnail_scale_calculation
Added new API for custom coder better handling the thumbnail size
2022-06-22 17:56:22 +08:00
DreamPiggy 1f3ee8e9d5 Added new API for custom coder better handling the thumbnail size
The current WebP/HEIF/AVIF coder both copy paste the same code multiple times and have to fix one by one
2022-06-22 16:53:40 +08:00
DreamPiggy 19b4b47c60
Merge pull request #3357 from dreampiggy/bugfix_encode_max_pixel_size
Fix the encodeMaxPixelSize logic
2022-06-20 21:01:07 +08:00
DreamPiggy 018cf32ab3 Added test23ThatThumbnailEncodeCalculation test case 2022-06-20 18:20:34 +08:00
DreamPiggy fcb53cb5ff Fix the encodeMaxPixelSize logic
Allows user to provide size which one dimension is larger than image size size
Example - maxPixelSize: (200, 200), imageSize: (100, 400), result: (50, 200)
2022-06-20 18:12:09 +08:00
DreamPiggy 3746c5d4c6 Merge branch 'master' of https://github.com/SDWebImage/SDWebImage 2022-06-20 17:33:00 +08:00
DreamPiggy 9362505aeb
Merge pull request #3336 from Insofan/feat/store_data
feat: store image data
2022-06-20 17:18:42 +08:00
DreamPiggy 8743cdd633
Merge pull request #3355 from dreampiggy/feature_support_uiimage_preparefordisplay
Support using iOS 15 UIImage new API imageByPreparingForDisplay for faster force decoding
2022-06-20 17:17:10 +08:00
DreamPiggy b729cc14f6 Bumped version to 5.12.6
update CHANGELOG
2022-06-12 18:28:19 +08:00
DreamPiggy 9b9fc6fc9b Support using iOS 15 UIImage new API imageByPreparingForDisplay for faster force decoding
This API seems support both async/sync version, SD use sync version here because we already call them on global queue
The API mark available on watchOS, but header does not pass that __has_include, a little strange
2022-06-12 18:16:04 +08:00
DreamPiggy eeb25d6e9c
Merge pull request #3354 from dreampiggy/bugfix_thumbnail_calculate
Fix the thumbnail pixel size calculation when preserveAspectRatio is true
2022-06-12 17:11:14 +08:00
DreamPiggy a66972bdc8
Update SDImageCache.m
Little logic check for nil value
2022-06-12 17:10:23 +08:00
DreamPiggy 754de4d7c8
Update SDImageCache.m
Remove extra toDisk param
2022-06-12 17:04:52 +08:00
DreamPiggy 2fc131c44b
Update SDImageCache.h
Remove extra toDisk param
2022-06-12 17:03:04 +08:00
DreamPiggy 3b0b232616 Added test case test22ThatThumbnailPreserveAspectRatio 2022-06-12 16:44:21 +08:00
DreamPiggy f90373ce14 Fix the thumbnail pixel size calculation when preserveAspectRatio is true 2022-06-12 16:32:33 +08:00
DreamPiggy 91c9966d77
Merge pull request #3353 from amonshiz/amonshiz/fix-3352
Fix #3352 Include necessary CoreImage import
2022-06-08 23:08:20 +08:00
Andrew Monshizadeh c231320913 Include necessary CoreImage import 2022-06-07 14:33:18 -04:00
DreamPiggy 362ba2d43f
Merge pull request #3349 from turrisxyz/Pinned-Dependencies-GitHub
chore: Set permissions for GitHub actions
2022-06-01 14:46:44 +08:00
naveen 24d4cda885 chore: Set permissions for GitHub actions
Restrict the GitHub token permissions only to the required ones; this way, even if the attackers will succeed in compromising your workflow, they won’t be able to do much.

- Included permissions for the action. https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions

https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions

https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs

[Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/)

Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com>
2022-06-01 00:29:19 +00:00
Kinarobin fda0a57de9
Merge pull request #3346 from timonus/faster-file-url
Small performance improvement to generating file URLs in SDDiskCache -setData:forKey:
2022-05-17 14:13:43 +08:00
Tim Johnsen 484de40e3b Small performance improvement to generating file URLs in SDDiskCache -setData:forKey:. 2022-05-12 15:42:17 -07:00
DreamPiggy d01eb3f8ac
Merge pull request #3337 from GetToSet/ethanwong/nsscreen-thread
Fix a crash of accessing -[NSScreen backingScaleFactor] from background thread.
2022-04-02 17:48:17 +08:00