mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 19:42:43 +00:00 
			
		
		
		
	LibGfx/TIFF: Add support for the IFD type
As described in the first edition of the TIFF technical notes, the IFD type is identical to Long (UnsignedLong) except that it only contains offset of valid IFDs. https://www.awaresystems.be/imaging/tiff/specification/TIFFPM6.pdf
This commit is contained in:
		
							parent
							
								
									1de90bf55e
								
							
						
					
					
						commit
						1d0a762cdb
					
				
					 3 changed files with 7 additions and 1 deletions
				
			
		|  | @ -468,6 +468,7 @@ private: | |||
|         } | ||||
|         case Type::UnsignedShort: | ||||
|             return read_every_values.template operator()<u16>(); | ||||
|         case Type::IFD: | ||||
|         case Type::UnsignedLong: | ||||
|             return read_every_values.template operator()<u32>(); | ||||
|         case Type::UnsignedRational: | ||||
|  |  | |||
|  | @ -11,8 +11,12 @@ | |||
| 
 | ||||
| namespace Gfx { | ||||
| 
 | ||||
| // This is a link to the main TIFF specification from 1992
 | ||||
| // https://www.itu.int/itudoc/itu-t/com16/tiff-fx/docs/tiff6.pdf
 | ||||
| 
 | ||||
| // First TIFF Technical notes from 1995
 | ||||
| // https://www.awaresystems.be/imaging/tiff/specification/TIFFPM6.pdf
 | ||||
| 
 | ||||
| namespace TIFF { | ||||
| class TIFFLoadingContext; | ||||
| } | ||||
|  |  | |||
|  | @ -40,6 +40,7 @@ class TIFFType(EnumWithExportName): | |||
|     SignedRational = 10, 8 | ||||
|     Float = 11, 4 | ||||
|     Double = 12, 8 | ||||
|     IFD = 13, 4 | ||||
|     UTF8 = 129, 1 | ||||
| 
 | ||||
| 
 | ||||
|  | @ -218,7 +219,7 @@ def tiff_type_to_cpp(t: TIFFType, with_promotion: bool = True) -> str: | |||
|         return 'ByteBuffer' | ||||
|     if t == TIFFType.UnsignedShort: | ||||
|         return 'u16' | ||||
|     if t == TIFFType.UnsignedLong: | ||||
|     if t == TIFFType.UnsignedLong or t == TIFFType.IFD: | ||||
|         return 'u32' | ||||
|     if t == TIFFType.UnsignedRational: | ||||
|         return 'TIFF::Rational<u32>' | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Lucas CHOLLET
						Lucas CHOLLET