#29705: RuntimeError while save webp file to Image-Field
-------------------------------------+-------------------------------------
     Reporter:  Ji Qu                |                    Owner:  Ji Qu
         Type:  Bug                  |                   Status:  assigned
    Component:  Core (Other)         |                  Version:  master
     Severity:  Normal               |               Resolution:
     Keywords:  image                |             Triage Stage:
  get_image_dimensions               |  Unreviewed
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Description changed by Ji Qu:

Old 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:
>
> [https://code.djangoproject.com/search?ticket=on&q=webp+&page=6&noquickjump=1
> search result]
>
> I have made a **online project** to reproduce the "bug".
>
>   - [https://github.com/winkidney/django-webp-image-issue-case github-
> repo]
>   - [https://travis-ci.org/winkidney/django-webp-image-issue-case travis-
> ci]
>
> 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?

New 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:

 [https://code.djangoproject.com/search?ticket=on&q=webp+&page=6&noquickjump=1
 search result]

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

   - [https://github.com/winkidney/django-webp-image-issue-case github-
 repo]
   - [https://travis-ci.org/winkidney/django-webp-image-issue-case travis-
 ci]

 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.

--

-- 
Ticket URL: <https://code.djangoproject.com/ticket/29705#comment:3>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/067.65ec5f6943c2a2ec0d1ffaadc643c457%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to