mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-11-10 19:56:47 +03:00
Added MPEG accept function
This commit is contained in:
parent
eee633cb21
commit
f690b7f691
39
Tests/test_file_mpeg.py
Normal file
39
Tests/test_file_mpeg.py
Normal file
|
@ -0,0 +1,39 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from io import BytesIO
|
||||
|
||||
import pytest
|
||||
|
||||
from PIL import Image, MpegImagePlugin
|
||||
|
||||
|
||||
def test_identify() -> None:
|
||||
# Arrange
|
||||
b = BytesIO(b"\x00\x00\x01\xb3\x01\x00\x01")
|
||||
|
||||
# Act
|
||||
with Image.open(b) as im:
|
||||
# Assert
|
||||
assert im.format == "MPEG"
|
||||
|
||||
assert im.mode == "RGB"
|
||||
assert im.size == (16, 1)
|
||||
|
||||
|
||||
def test_invalid_file() -> None:
|
||||
# Arrange
|
||||
invalid_file = "Tests/images/flower.jpg"
|
||||
|
||||
# Act / Assert
|
||||
with pytest.raises(SyntaxError):
|
||||
MpegImagePlugin.MpegImageFile(invalid_file)
|
||||
|
||||
|
||||
def test_load() -> None:
|
||||
# Arrange
|
||||
b = BytesIO(b"\x00\x00\x01\xb3\x01\x00\x01")
|
||||
|
||||
with Image.open(b) as im:
|
||||
# Act / Assert: cannot load
|
||||
with pytest.raises(OSError):
|
||||
im.load()
|
|
@ -53,6 +53,10 @@ class BitStream:
|
|||
return v
|
||||
|
||||
|
||||
def _accept(prefix: bytes) -> bool:
|
||||
return prefix[:4] == b"\x00\x00\x01\xb3"
|
||||
|
||||
|
||||
##
|
||||
# Image plugin for MPEG streams. This plugin can identify a stream,
|
||||
# but it cannot read it.
|
||||
|
@ -77,7 +81,7 @@ class MpegImageFile(ImageFile.ImageFile):
|
|||
# --------------------------------------------------------------------
|
||||
# Registry stuff
|
||||
|
||||
Image.register_open(MpegImageFile.format, MpegImageFile)
|
||||
Image.register_open(MpegImageFile.format, MpegImageFile, _accept)
|
||||
|
||||
Image.register_extensions(MpegImageFile.format, [".mpg", ".mpeg"])
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user