Summary:
This patch improves png quality when image uses scale-down at image loading.
Since current scale-down logic just works like point sampling,
image result could be wholely different,
Simply, if source data is consist of continous white and black pixels,
and scale down factor is 2, the sampled data would be only white,
and lose all black pixels, or vice versa.
The result can be unexpected by users.
Even current jpeg scale-down works with interpolation.
Before:
{F3711651}
After:
{F3711652}
Original:
{F3711653}
Reviewers: cedric, raster, #committers, kimcinoo, jsuya
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8788
Previously, mannual scale down logic was too primitive,
it copied pixel data each channels. Obviously, it's ineffective.
We know the general case - 4 bytes channel which is the most usage,
If loader copies data per four bytes, instructions could be reduced.
When I load scale-downed image(original 8k), about 0.02 secs was reduced by this.
to date if you use async preload we still load the header
synchronously and this can be horrible especially with generic
loaders. there is no way to farm this off to the preload thread. now
there is. youhave to set it as a skip head load option before doing a
file_set AND you need to issue a preload ... but now it's possible.
@feature
The previous commit exposed an issue with the region test
does not take into account the scale down factor.
Not a @fix in itself, as it depends on the previous patch.