X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fmodules%2Fswfbits.c;h=cff2c9f625a725b64f1cf8c1e4d9b4047b090604;hb=5058b5848c87ff41a3d83d163cef448989bd7726;hp=1b311f83131482593e7069e1ec0721a4463fede6;hpb=774da0eb175e36c6b8a563f3a7af82e6640b19c9;p=swftools.git diff --git a/lib/modules/swfbits.c b/lib/modules/swfbits.c index 1b311f8..cff2c9f 100644 --- a/lib/modules/swfbits.c +++ b/lib/modules/swfbits.c @@ -124,8 +124,6 @@ int swf_SetJPEGBits(TAG * t,char * fname,int quality) jpeg_stdio_src(&cinfo,f); jpeg_read_header(&cinfo, TRUE); - if(JPEG_LIB_VERSION>=62) /* jpeglib Version 6b is required for grayscale-> color conversion */ - cinfo.out_color_space = JCS_RGB; //automatically convert grayscale images jpeg_start_decompress(&cinfo); out = swf_SetJPEGBitsStart(t,cinfo.output_width,cinfo.output_height,quality); @@ -135,8 +133,6 @@ int swf_SetJPEGBits(TAG * t,char * fname,int quality) { int y; U8 * js = scanline; if(cinfo.out_color_space == JCS_GRAYSCALE) { - /* happens only if JPEG_LIB_VERSION above - was too small - let's do the conversion ourselves */ for (y=0;y>8); + js[x*3+1] = y - ((88*(u-128)-183*(v-128))>>8); + js[x*3+2] = y + ((455 * (u-128))>>8); + } + } + } + else if(cinfo.out_color_space == JCS_CMYK) + { + for (y=0;yRGB conversion routines I found in the + web. (which all produced garbage) + I'm happily accepting suggestions. (mk)*/ + for(x=0;x>8); + js[x*3+1] = white - ((js[x*4+1]*white)>>8); + js[x*3+2] = white - ((js[x*4+2]*white)>>8); + } + swf_SetJPEGBitsLines(out,(U8**)&js,1); + } + } } swf_SetJPEGBitsFinish(out); @@ -215,7 +252,7 @@ int swf_SetLosslessBits(TAG * t,U16 width,U16 height,void * bitmap,U8 bitmap_fla swf_SetU16(t,width); swf_SetU16(t,height); - if (data=malloc(OUTBUFFER_SIZE)) + if ((data=malloc(OUTBUFFER_SIZE))) { z_stream zs; memset(&zs,0x00,sizeof(z_stream)); @@ -261,7 +298,7 @@ int swf_SetLosslessBitsIndexed(TAG * t,U16 width,U16 height,U8 * bitmap,RGBA * p swf_SetU16(t,height); swf_SetU8(t,ncolors-1); // number of pal entries - if (data=malloc(OUTBUFFER_SIZE)) + if ((data=malloc(OUTBUFFER_SIZE))) { z_stream zs; memset(&zs,0x00,sizeof(z_stream)); @@ -270,7 +307,7 @@ int swf_SetLosslessBitsIndexed(TAG * t,U16 width,U16 height,U8 * bitmap,RGBA * p if (deflateInit(&zs,Z_DEFAULT_COMPRESSION)==Z_OK) { U8 * zpal; // compress palette - if (zpal = malloc(ncolors*4)) + if ((zpal = malloc(ncolors*4))) { U8 * pp = zpal; int i;