Opened 6 years ago

Last modified 6 years ago

#29705 closed Bug

Runtimeerror while Django Image Field received some type of webp file — at Initial Version

Reported by: Ji Qu Owned by: nobody
Component: Core (Other) Version: dev
Severity: Normal Keywords: image get_image_dimensions
Cc: Ji Qu Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

Hi,

This is my first time to report a bug for django-project, please feel free to give me a hand if I have any non-standard workflow.

I have meet a "RuntimError" while trying to save a webp-image.

I have searched django tickets with following link but no similar ticket found:

search result

I have made a online project to reproduce the "bug".

Please follow this link to track how this bug happens and how it affects my own sites.

A patch is being making to fix the possible "RuntimeError" while saving a webp page.

For your information, I will also paste the code which could reproduce the bug.

import os

from django.core.files.images import get_image_dimensions
import pytest


FILE_NAME = 'img.webp'

here = os.path.dirname(__file__)
file_path = os.path.join(here, FILE_NAME)


def test_webp_parse_error():
    """
    Webp file from douban.com, displays in browser well,
    can be opened by PIL but error occurs while use django parse.
    """
    with pytest.raises(
        RuntimeError,
    ) as info:
        with open(file_path, 'rb') as fp:
            get_image_dimensions(file_or_path=fp, close=True)
    assert str(info.value) == 'could not create decoder object'


def test_the_working_way():
    with open(file_path, "rb") as fp:
        from PIL import Image
        image = Image.open(fp)
        print(image.size)

Please download the image with these links:
From douban: https://img3.doubanio.com/view/status/m/public/a606779b213ae14.webp
From google: https://developers.google.com/speed/webp/gallery?hl=zh-CN
https://www.gstatic.com/webp/gallery/4.sm.webp

Python version:

Python 3.6.4

Kernel version:

Linux ubuntu 4.15.0-29-generic #31~16.04.1-Ubuntu SMP Wed Jul 18 08:54:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Version of libweb:

ii libwebp-dev:amd64 0.4.4-1 amd64 Lossy compression of digital photographic images.
ii libwebp5:amd64 0.4.4-1 amd64 Lossy compression of digital photographic images.
ii libwebpdemux1:amd64 0.4.4-1 amd64 Lossy compression of digital photographic images.
ii libwebpmux1:amd64 0.4.4-1 amd64 Lossy compression of digital photographic images.

When the error occurs:

While I try to save image with webp format, the error occurs.

PS: I don't know how to assign the bug to myself, is there any link or doc for me to make my pull request?

Change History (0)

Note: See TracTickets for help on using tickets.
Back to Top