mirror of
https://github.com/thorvg/thorvg.git
synced 2025-06-14 20:14:37 +00:00
gif/encoder: adjusted alpha transparent threshold 255 -> 127
More than half-transparent(50%) pixels will be encoded as well.
This commit is contained in:
parent
89a6a835dd
commit
c44e09faae
1 changed files with 3 additions and 2 deletions
|
@ -51,6 +51,7 @@
|
||||||
|
|
||||||
|
|
||||||
#define TRANSPARENT_IDX 0
|
#define TRANSPARENT_IDX 0
|
||||||
|
#define TRANSPARENT_THRESHOLD 127
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
@ -283,7 +284,7 @@ static int _pickChangedPixels(const uint8_t* lastFrame, uint8_t* frame, int numP
|
||||||
uint8_t* writeIter = frame;
|
uint8_t* writeIter = frame;
|
||||||
|
|
||||||
for (int ii=0; ii < numPixels; ++ii) {
|
for (int ii=0; ii < numPixels; ++ii) {
|
||||||
if (frame[3] == 255) {
|
if (frame[3] >= TRANSPARENT_THRESHOLD) {
|
||||||
if (transparent || (lastFrame[0] != frame[0] || lastFrame[1] != frame[1] || lastFrame[2] != frame[2])) {
|
if (transparent || (lastFrame[0] != frame[0] || lastFrame[1] != frame[1] || lastFrame[2] != frame[2])) {
|
||||||
writeIter[0] = frame[0];
|
writeIter[0] = frame[0];
|
||||||
writeIter[1] = frame[1];
|
writeIter[1] = frame[1];
|
||||||
|
@ -347,7 +348,7 @@ static void _thresholdImage(const uint8_t* lastFrame, const uint8_t* nextFrame,
|
||||||
|
|
||||||
if (transparent) {
|
if (transparent) {
|
||||||
for (uint32_t ii = 0; ii < numPixels; ++ii) {
|
for (uint32_t ii = 0; ii < numPixels; ++ii) {
|
||||||
if (nextFrame[3] < 255) {
|
if (nextFrame[3] < TRANSPARENT_THRESHOLD) {
|
||||||
outFrame[0] = 0;
|
outFrame[0] = 0;
|
||||||
outFrame[1] = 0;
|
outFrame[1] = 0;
|
||||||
outFrame[2] = 0;
|
outFrame[2] = 0;
|
||||||
|
|
Loading…
Add table
Reference in a new issue