new option: -blend_alpha 0xrrggbb
also: don't force picture.use_argb value for lossless. Instead,
delay the YUVA<->ARGB conversion till WebPEncode() is called.
This make the blending more accurate when source is ARGB
and lossy compression is used (YUVA).
This has an effect on cropping/rescaling. E.g. for PNG, these
are now done in ARGB colorspace instead of YUV when lossy compression
is used.
Change-Id: I18571f1b1179881737a8dbd23ad0aa8cddae3c6b
(cherry picked from commit e7d9548c9b)
user can now call WebPEncode() with any YUVA or ARGB format, for
lossy or lossless compression
also: simplified error reporting, which is done in WebPPictureARGBToYUVA()
and WebPPictureYUVAToARGB()
Change-Id: Ifb68909217175bcf5a050e5c68d06de9849468f7
(cherry picked from commit 07d87bda1b)
- Add a note that disposal only applies to the frame rectangle
- Add the formula for alpha-blending.
- Note that alpha-blending would occur for the common rectangle
- Also note the case when both color profile and disposal are
present.
Change-Id: I214787dd64453edf3b0cdaff3951015281a32ee4
transfer ownership of chunk passed in ChunkSetNth(). prevents freeing
the chunk in e.g., MuxImageParse() when a partial assignment (alpha but
no image) has occurred.
Change-Id: Ia69656b04fdf50f098f3816b54abd4e191248de3
When transparent color index and background color index are same,
we should set background color to 0x00ffffff (transparent).
For this, we delay setting the background color until we have read the
first frame.
Change-Id: I443609b9c7697a2b94a66992460cff8465b3c127
Saturation was done on input coeff, not quantized one.
This saturation is not absolutely needed: output of FTransformWHT
is in range [-16320, 16321]. At quality 100, max quantization steps is 8,
so the maximal range used by QuantizeBlock() is [-2040, 2040].
But there's some extra bias (mtx->bias_[] and mtx->sharpen_[]) so
it's better to leave this saturation check for now.
addresses issue #145
Change-Id: I4b14f71cdc80c46f9eaadb2a4e8e03d396879d28
buffer the last frame's details to perform DISPOSE_BACKGROUND on the
image's area, rather than the entire canvas.
also fixes transparent backgrounds with animated images
Change-Id: I53e4d70c441e1eeb136f1d01e7c88de4f9ecff53
broken since:
e2feefa Makefile.vc: split mux into separate lib
broken even more since:
b65c4b7 Makefile.vc: add libwebpdecoder target
Change-Id: Ibb7a7f2c71ae63434a60d988ce15f0a4ed8fcaee
this would require a PRIuS or similar macro for proper platform
compatibility (Visual Studio for instance would be variants of %lu)
Change-Id: I1af530c7c358c91b845acde1d8c12ef46c2ef746
* merge cost calculation functions (BitsEntropy() and HuffmanCost())
* have HistogramAdd() specialized into separate functions
* use threshold to bail-out early
* revamp code a bit
* also: save memory by freeing free(histogram_image)
Change-Id: I8ee5d2cfa1462d5d6ea6361f5c89925a3720ef55