mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-11-04 01:47:47 +03:00 
			
		
		
		
	Removed HEADER_V72 and HEADER_V73
This commit is contained in:
		
							parent
							
								
									8cb320a6d1
								
							
						
					
					
						commit
						766f60e8b2
					
				| 
						 | 
					@ -123,9 +123,7 @@ class VTFHeader(NamedTuple):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
BLOCK_COMPRESSED = (VtfPF.DXT1, VtfPF.DXT1_ONEBITALPHA, VtfPF.DXT3, VtfPF.DXT5)
 | 
					BLOCK_COMPRESSED = (VtfPF.DXT1, VtfPF.DXT1_ONEBITALPHA, VtfPF.DXT3, VtfPF.DXT5)
 | 
				
			||||||
HEADER_V70 = "<I2HI2H4x3f4xfIbI2b"
 | 
					HEADER_V70 = "2HI2H4x3f4xfIbI2b"
 | 
				
			||||||
HEADER_V72 = "<I2HI2H4x3f4xfIbI2bH"
 | 
					 | 
				
			||||||
HEADER_V73 = "<I2HI2H4x3f4xfIbI2bH3xI8x"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def _get_texture_size(pixel_format: int, width: int, height: int) -> int:
 | 
					def _get_texture_size(pixel_format: int, width: int, height: int) -> int:
 | 
				
			||||||
| 
						 | 
					@ -203,7 +201,9 @@ class VtfImageFile(ImageFile.ImageFile):
 | 
				
			||||||
            raise VTFException(msg)
 | 
					            raise VTFException(msg)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        header = VTFHeader(
 | 
					        header = VTFHeader(
 | 
				
			||||||
            *struct.unpack(HEADER_V70, self.fp.read(struct.calcsize(HEADER_V70)))
 | 
					            *struct.unpack(
 | 
				
			||||||
 | 
					                "<I" + HEADER_V70, self.fp.read(struct.calcsize("<I" + HEADER_V70))
 | 
				
			||||||
 | 
					            )
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
        self.fp.seek(header.header_size)
 | 
					        self.fp.seek(header.header_size)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -318,10 +318,10 @@ def _save(im: Image.Image, fp: IO[bytes], filename: str | bytes) -> None:
 | 
				
			||||||
        flags,
 | 
					        flags,
 | 
				
			||||||
        1,
 | 
					        1,
 | 
				
			||||||
        0,
 | 
					        0,
 | 
				
			||||||
        1.0,
 | 
					        1,
 | 
				
			||||||
        1.0,
 | 
					        1,
 | 
				
			||||||
        1.0,
 | 
					        1,
 | 
				
			||||||
        1.0,
 | 
					        1,
 | 
				
			||||||
        pixel_format,
 | 
					        pixel_format,
 | 
				
			||||||
        mipmap_count,
 | 
					        mipmap_count,
 | 
				
			||||||
        VtfPF.DXT1,
 | 
					        VtfPF.DXT1,
 | 
				
			||||||
| 
						 | 
					@ -331,33 +331,30 @@ def _save(im: Image.Image, fp: IO[bytes], filename: str | bytes) -> None:
 | 
				
			||||||
        2,
 | 
					        2,
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fp.write(b"VTF\x00" + struct.pack("<2I", *version))
 | 
					    header_bytes = struct.pack("<" + HEADER_V70, *header[1:15])
 | 
				
			||||||
    if version < (7, 2):
 | 
					    if version >= (7, 2):
 | 
				
			||||||
        size = struct.calcsize(HEADER_V70) + 12
 | 
					        header_bytes += struct.pack("<H", header.depth)
 | 
				
			||||||
        header = header._replace(header_size=size + (16 - size % 16))
 | 
					    if version >= (7, 3):
 | 
				
			||||||
        fp.write(struct.pack(HEADER_V70, *header[:15]))
 | 
					        header_bytes += struct.pack("<3xI8x", header.resource_count)
 | 
				
			||||||
    elif version == (7, 2):
 | 
					    # Align header size to 16 bytes
 | 
				
			||||||
        size = struct.calcsize(HEADER_V72) + 12
 | 
					    if len(header_bytes) % 16:
 | 
				
			||||||
        header = header._replace(header_size=size + (16 - size % 16))
 | 
					        header_bytes += b"\x00" * (16 - len(header_bytes) % 16)
 | 
				
			||||||
        fp.write(struct.pack(HEADER_V72, *header[:16]))
 | 
					    header_length = 16 + len(header_bytes)
 | 
				
			||||||
    else:
 | 
					    if version >= (7, 3):
 | 
				
			||||||
        size = struct.calcsize(HEADER_V73) + 12
 | 
					        header_length += 16  # Resource entries
 | 
				
			||||||
        header = header._replace(header_size=size + (16 - size % 16))
 | 
					    fp.write(b"VTF\x00" + struct.pack("<2II", *version, header_length))
 | 
				
			||||||
        fp.write(struct.pack(HEADER_V73, *header))
 | 
					    fp.write(header_bytes)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if version > (7, 2):
 | 
					    if version > (7, 2):
 | 
				
			||||||
        fp.write(b"\x01\x00\x00\x00")
 | 
					        # Resource entries
 | 
				
			||||||
        fp.write(struct.pack("<I", header.header_size))
 | 
					        for tag, offset in {
 | 
				
			||||||
        fp.write(b"\x30\x00\x00\x00")
 | 
					            b"\x01\x00\x00": header_length,  # Low-res
 | 
				
			||||||
        fp.write(
 | 
					            b"\x30\x00\x00": header_length
 | 
				
			||||||
            struct.pack(
 | 
					            + _get_texture_size(VtfPF.DXT1, thumb.width, thumb.height),  # High-res
 | 
				
			||||||
                "<I",
 | 
					        }.items():
 | 
				
			||||||
                header.header_size
 | 
					            fp.write(tag + b"\x00")  # Tag, flags
 | 
				
			||||||
                + _get_texture_size(VtfPF.DXT1, thumb.width, thumb.height),
 | 
					            fp.write(struct.pack("<I", offset))
 | 
				
			||||||
            )
 | 
					
 | 
				
			||||||
        )
 | 
					 | 
				
			||||||
    else:
 | 
					 | 
				
			||||||
        fp.write(b"\x00" * (16 - fp.tell() % 16))
 | 
					 | 
				
			||||||
    _write_image(fp, thumb, VtfPF.DXT1)
 | 
					    _write_image(fp, thumb, VtfPF.DXT1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    min_size = 4 if pixel_format in BLOCK_COMPRESSED else 1
 | 
					    min_size = 4 if pixel_format in BLOCK_COMPRESSED else 1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user