diff --git a/splash/Splash.cc b/splash/Splash.cc index fd618cd..6a1891e 100644 --- a/splash/Splash.cc +++ b/splash/Splash.cc @@ -182,7 +182,7 @@ SplashPipeResultColorCtrl Splash::pipeResultColorAlphaNoBlend[] = { splashPipeResultColorAlphaNoBlendMono, splashPipeResultColorAlphaNoBlendMono, splashPipeResultColorAlphaNoBlendRGB, - splashPipeResultColorNoAlphaBlendRGB, + splashPipeResultColorAlphaNoBlendRGB, splashPipeResultColorAlphaNoBlendRGB #if SPLASH_CMYK , @@ -195,7 +195,7 @@ SplashPipeResultColorCtrl Splash::pipeResultColorAlphaBlend[] = { splashPipeResultColorAlphaBlendMono, splashPipeResultColorAlphaBlendMono, splashPipeResultColorAlphaBlendRGB, - splashPipeResultColorNoAlphaBlendRGB, + splashPipeResultColorAlphaBlendRGB, splashPipeResultColorAlphaBlendRGB #if SPLASH_CMYK , diff --git a/splash/SplashBitmap.cc b/splash/SplashBitmap.cc index 93d2da8..dcbde7c 100644 --- a/splash/SplashBitmap.cc +++ b/splash/SplashBitmap.cc @@ -573,7 +573,7 @@ void SplashBitmap::getCMYKLine(int yl, SplashColorPtr line) { #endif SplashError SplashBitmap::writeImgFile(ImgWriter *writer, FILE *f, int hDPI, int vDPI) { - if (mode != splashModeRGB8 && mode != splashModeMono8 && mode != splashModeMono1 && mode != splashModeXBGR8 + if (mode != splashModeRGB8 && mode != splashModeMono8 && mode != splashModeMono1 && mode != splashModeXBGR8 && mode != splashModeBGR8 #if SPLASH_CMYK && mode != splashModeCMYK8 && mode != splashModeDeviceN8 #endif @@ -657,6 +657,26 @@ SplashError SplashBitmap::writeImgFile(ImgWriter *writer, FILE *f, int hDPI, int } break; + case splashModeBGR8: + { + unsigned char *row = new unsigned char[3 * width]; + for (int y = 0; y < height; y++) { + // Convert into a PNG row + for (int x = 0; x < width; x++) { + row[3*x] = data[y * rowSize + x * 3 + 2]; + row[3*x+1] = data[y * rowSize + x * 3 + 1]; + row[3*x+2] = data[y * rowSize + x * 3]; + } + + if (!writer->writeRow(&row)) { + delete[] row; + return splashErrGeneric; + } + } + delete[] row; + } + break; + case splashModeXBGR8: { unsigned char *row = new unsigned char[3 * width];