mirror of
				https://github.com/webmproject/libwebp.git
				synced 2025-10-31 02:15:42 +01:00 
			
		
		
		
	tiffdec: fix EXTRASAMPLES check
the TIFFGetField() return for TIFFTAG_EXTRASAMPLES is defined as (count,
types array) [1]. previously the count was being checked rather than the
first element of the array to determine whether the alpha was associated
(pre-multiplied) and the result needed to be unmultiplied.
since:
9273e441 fix TIFF encoder regarding rgbA/RGBA
[1] http://www.libtiff.org/man/TIFFSetField.3t.html
Change-Id: I6e41be9d038fe8afb6d0aa3c8048925dc901113b
			
			
This commit is contained in:
		| @@ -215,7 +215,8 @@ int ReadTIFF(const uint8_t* const data, size_t data_size, | |||||||
|       TIFFSwabArrayOfLong(raster, width * height); |       TIFFSwabArrayOfLong(raster, width * height); | ||||||
| #endif | #endif | ||||||
|       // if we have an alpha channel, we must un-multiply from rgbA to RGBA |       // if we have an alpha channel, we must un-multiply from rgbA to RGBA | ||||||
|       if (samples_per_px > 3 && extra_samples == 1) { |       if (extra_samples == 1 && extra_samples_ptr != NULL && | ||||||
|  |           extra_samples_ptr[0] == EXTRASAMPLE_ASSOCALPHA) { | ||||||
|         uint32_t y; |         uint32_t y; | ||||||
|         uint8_t* tmp = (uint8_t*)raster; |         uint8_t* tmp = (uint8_t*)raster; | ||||||
|         for (y = 0; y < height; ++y) { |         for (y = 0; y < height; ++y) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user