SDWebImage / SDWebImage/SDWebImageWebPCoder
Quality issues for animated images
Nobody has claimed this yet.
- Dominant language
- Objective-C
- Stars
- 277
- Forks
- 101
- PR merge metrics
- No merged PRs in 30d
Description
Description
My code includes the setting of this limitation:
/// Limits scale down to 24MB.
SDImageCoderHelper.defaultScaleDownLimitBytes = 24 * 1_024 * 1_024
When I get an animated image data that weighs 1.8 MB, the quality is severely degraded, and if I saw correctly my final image was 0.5 MB. I tried to play around with setting the value and in the end I got an image of 7200 bytes with the 1 MB limit set.
This was strange to me, so I tried exploring the codebase and seemed to find the problem in this line: https://github.com/SDWebImage/SDWebImageWebPCoder/pull/75/files#diff-e9c046b25a4d1b5fd2e490c2ebc802f1a63ef0459e0ad74dd3647f72d9c68323R94
Am I misunderstanding the expected behavior? Because it looks like a bug to me. Since it is strange that by setting the limit to 24 MB I get image quality degradation and image size reduction when its image data size is only 1.77 MB.
Also maybe you can tell me why when I try to download a heavy image and several small images, if the heavy image was added earlier, I don't get a response for the small images until the large one is downloaded? (It is important to note that I am considering the case of downloading an image from disk or over the network, only in these cases this happens).
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with SDImageCoderHelper.defaultScaleDownLimitBytes and inspect the linked SDWebImageWebPCoder pull request at the referenced line. Reproduce the animated-image quality and size behavior with the stated limits, then investigate the disk or network download ordering separately. Done means the observed behaviors are explained and any confirmed regressions have focused tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- objective-c
- Domain
- computer-graphics, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100