updates
This commit is contained in:
@@ -22,16 +22,20 @@ and has been tested with a few sample files found using google.
|
||||
is not registered for use with :py:func:`PIL.Image.open()`.
|
||||
To open a WAL file, use the :py:func:`PIL.WalImageFile.open()` function instead.
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import IO
|
||||
|
||||
from . import Image, ImageFile
|
||||
from ._binary import i32le as i32
|
||||
from ._typing import StrOrBytesPath
|
||||
|
||||
|
||||
class WalImageFile(ImageFile.ImageFile):
|
||||
format = "WAL"
|
||||
format_description = "Quake2 Texture"
|
||||
|
||||
def _open(self):
|
||||
def _open(self) -> None:
|
||||
self._mode = "P"
|
||||
|
||||
# read header fields
|
||||
@@ -45,19 +49,18 @@ class WalImageFile(ImageFile.ImageFile):
|
||||
|
||||
# strings are null-terminated
|
||||
self.info["name"] = header[:32].split(b"\0", 1)[0]
|
||||
next_name = header[56 : 56 + 32].split(b"\0", 1)[0]
|
||||
if next_name:
|
||||
if next_name := header[56 : 56 + 32].split(b"\0", 1)[0]:
|
||||
self.info["next_name"] = next_name
|
||||
|
||||
def load(self):
|
||||
if not self.im:
|
||||
def load(self) -> Image.core.PixelAccess | None:
|
||||
if self._im is None:
|
||||
self.im = Image.core.new(self.mode, self.size)
|
||||
self.frombytes(self.fp.read(self.size[0] * self.size[1]))
|
||||
self.putpalette(quake2palette)
|
||||
return Image.Image.load(self)
|
||||
|
||||
|
||||
def open(filename):
|
||||
def open(filename: StrOrBytesPath | IO[bytes]) -> WalImageFile:
|
||||
"""
|
||||
Load texture from a Quake2 WAL texture file.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user