diff --git a/src/osgPlugins/tiff/ReaderWriterTIFF.cpp b/src/osgPlugins/tiff/ReaderWriterTIFF.cpp index 4ef5556c0..e3a331f7a 100644 --- a/src/osgPlugins/tiff/ReaderWriterTIFF.cpp +++ b/src/osgPlugins/tiff/ReaderWriterTIFF.cpp @@ -157,19 +157,31 @@ copy_row(unsigned char *ptr, unsigned char *data, int n, int numSamples) } -static void -interleave_row(unsigned char *ptr, -unsigned char *red, unsigned char *blue, unsigned char *green, -int n) +static void interleave_row(unsigned char *ptr, + unsigned char *red, unsigned char *green, unsigned char *blue, + int n, int numSamples) { while (n--) { *ptr++ = *red++; *ptr++ = *green++; *ptr++ = *blue++; + if (numSamples==4) *ptr++ = 255; } } +static void interleave_row(unsigned char *ptr, + unsigned char *red, unsigned char *green, unsigned char *blue, unsigned char *alpha, + int n, int numSamples) +{ + while (n--) + { + *ptr++ = *red++; + *ptr++ = *green++; + *ptr++ = *blue++; + if (numSamples==4) *ptr++ = *alpha++; + } +} int simage_tiff_identify(const char *, @@ -381,7 +393,6 @@ int *numComponents_ret) break; case pack(PHOTOMETRIC_RGB, PLANARCONFIG_SEPARATE): - osg::notify(osg::NOTICE)<<"case 4"<