--- src/core/SkConvertPixels.cpp.orig +++ src/core/SkConvertPixels.cpp @@ -150,7 +150,12 @@ auto src32 = (const uint32_t*) src; for (int y = 0; y < srcInfo.height(); y++) { for (int x = 0; x < srcInfo.width(); x++) { + // Alpha is the last byte of the pixel, which is the low byte on big endian. +#if defined(SK_CPU_BENDIAN) + dst[x] = src32[x] & 0xff; +#else dst[x] = src32[x] >> 24; +#endif } dst = SkTAddOffset(dst, dstRB); src32 = SkTAddOffset(src32, srcRB);