當前位置: 首頁>>代碼示例>>Python>>正文


Python Image.open方法代碼示例

本文整理匯總了Python中django.utils.image.Image.open方法的典型用法代碼示例。如果您正苦於以下問題:Python Image.open方法的具體用法?Python Image.open怎麽用?Python Image.open使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在django.utils.image.Image的用法示例。


在下文中一共展示了Image.open方法的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: to_python

# 需要導入模塊: from django.utils.image import Image [as 別名]
# 或者: from django.utils.image.Image import open [as 別名]
    def to_python(self, data):
        """
        Checks that the file-upload field data contains a valid image (GIF, JPG,
        PNG, possibly others -- whatever the Python Imaging Library supports).
        """
        f = super(ImageField, self).to_python(data)
        if f is None:
            return None

        from django.utils.image import Image

        # We need to get a file object for Pillow. We might have a path or we might
        # have to read the data into memory.
        if hasattr(data, 'temporary_file_path'):
            file = data.temporary_file_path()
        else:
            if hasattr(data, 'read'):
                file = BytesIO(data.read())
            else:
                file = BytesIO(data['content'])

        try:
            # load() could spot a truncated JPEG, but it loads the entire
            # image in memory, which is a DoS vector. See #3848 and #18520.
            # verify() must be called immediately after the constructor.
            Image.open(file).verify()
        except Exception:
            # Pillow (or PIL) doesn't recognize it as an image.
            six.reraise(ValidationError, ValidationError(self.error_messages['invalid_image']), sys.exc_info()[2])
        if hasattr(f, 'seek') and callable(f.seek):
            f.seek(0)
        return f
開發者ID:EmilStenstrom,項目名稱:django,代碼行數:34,代碼來源:fields.py

示例2: is_image

# 需要導入模塊: from django.utils.image import Image [as 別名]
# 或者: from django.utils.image.Image import open [as 別名]
 def is_image(self):
     # taken from ImageField
     try:
         Image.open(self.data).verify()
         return True
     except Exception:
         return False
開發者ID:kezabelle,項目名稱:django-editregions,代碼行數:9,代碼來源:models.py

示例3: clean_image

# 需要導入模塊: from django.utils.image import Image [as 別名]
# 或者: from django.utils.image.Image import open [as 別名]
    def clean_image(self):
        image = self.cleaned_data["image"]

        if Image.open(image).format.lower() not in settings.ST_ALLOWED_UPLOAD_IMAGE_FORMAT:
            raise forms.ValidationError(_("Unsupported file format. Supported formats are %s."
                                          % ", ".join(settings.ST_ALLOWED_UPLOAD_IMAGE_FORMAT)))

        image.seek(0)
        return image
開發者ID:AlienTechs,項目名稱:Spirit,代碼行數:11,代碼來源:comment.py

示例4: test_bug_19457

# 需要導入模塊: from django.utils.image import Image [as 別名]
# 或者: from django.utils.image.Image import open [as 別名]
 def test_bug_19457(self):
     """
     Regression test for #19457
     get_image_dimensions fails on some pngs, while Image.size is working good on them
     """
     img_path = os.path.join(os.path.dirname(upath(__file__)), "magic.png")
     try:
         size = get_image_dimensions(img_path)
     except zlib.error:
         self.fail("Exception raised from get_image_dimensions().")
     self.assertEqual(size, Image.open(img_path).size)
開發者ID:Eenvincible,項目名稱:django,代碼行數:13,代碼來源:tests.py

示例5: test_multiple_calls

# 需要導入模塊: from django.utils.image import Image [as 別名]
# 或者: from django.utils.image.Image import open [as 別名]
    def test_multiple_calls(self):
        """
        Multiple calls of get_image_dimensions() should return the same size.
        """
        from django.core.files.images import ImageFile

        img_path = os.path.join(os.path.dirname(upath(__file__)), "test.png")
        image = ImageFile(open(img_path, 'rb'))
        image_pil = Image.open(img_path)
        size_1, size_2 = get_image_dimensions(image), get_image_dimensions(image)
        self.assertEqual(image_pil.size, size_1)
        self.assertEqual(size_1, size_2)
開發者ID:OMGunDuende,項目名稱:django,代碼行數:14,代碼來源:tests.py

示例6: test_multiple_calls

# 需要導入模塊: from django.utils.image import Image [as 別名]
# 或者: from django.utils.image.Image import open [as 別名]
 def test_multiple_calls(self):
     """
     Multiple calls of get_image_dimensions() should return the same size.
     """
     img_path = os.path.join(os.path.dirname(upath(__file__)), "test.png")
     with open(img_path, 'rb') as fh:
         image = images.ImageFile(fh)
         image_pil = Image.open(fh)
         size_1 = images.get_image_dimensions(image)
         size_2 = images.get_image_dimensions(image)
     self.assertEqual(image_pil.size, size_1)
     self.assertEqual(size_1, size_2)
開發者ID:SvenDowideit,項目名稱:clearlinux,代碼行數:14,代碼來源:tests.py

示例7: from_url

# 需要導入模塊: from django.utils.image import Image [as 別名]
# 或者: from django.utils.image.Image import open [as 別名]
    def from_url(creator, url):
        try:
            return Cover.objects.get(original_url=url)
        except Cover.DoesNotExist:
            pass

        img_temp = None

        try:
            cover = Cover(creator=creator, create_date=datetime.now(), original_url=url)

            response = urllib.request.urlopen(url)

            if 'content-length' not in response.headers or int(response.headers['content-length']) > 1000000:
                return None

            data = response.read()

            Image.open(BytesIO(data)).verify()

            img = Image.open(BytesIO(data))
            img = img.resize((150, 150), Image.ANTIALIAS)

            img_temp = NamedTemporaryFile(delete=True)
            ext = url.split('.')[-1].upper()
            if ext == 'JPG':
                ext = 'JPEG'
            img.save(img_temp, format=ext)

            cover.file.save(f(None, url), File(img_temp), save=True)

            return cover
        except:
            return None
        finally:
            if img_temp:
                img_temp.close()
開發者ID:shownotes,項目名稱:snotes20-restapi,代碼行數:39,代碼來源:cover.py

示例8: students_add

# 需要導入模塊: from django.utils.image import Image [as 別名]
# 或者: from django.utils.image.Image import open [as 別名]
def students_add(request):
    form = StudentAddForm(request.POST or None)
    context = {'form': form}
    context.update({'page_title': _(u"Add Student")})
    # was form posted?
    if request.method == "POST":
        # was form add button clicked?
        if request.POST.get('add_button') is not None:
            # error collection
            errors = OrderedDict()
            # validate student data will go here
            data = {'middle_name': request.POST.get('middle_name'),
                    'notes': request.POST.get('notes')}

            # validate user input
            first_name = request.POST.get('first_name', '').strip()
            if not first_name:
                errors['first_name'] = _(u"First Name field is required")
            else:
                data['first_name'] = first_name

            last_name = request.POST.get('last_name', '').strip()
            if not last_name:
                errors['last_name'] = _(u"Last Name field is required")
            else:
                data['last_name'] = last_name

            birthday = request.POST.get('birthday', '').strip()
            if not birthday:
                errors['birthday'] = _(u"Birthday date is required")
            else:
                data['birthday'] = birthday
                try:
                    datetime.strptime(birthday, '%Y-%m-%d')
                except Exception:
                    errors['birthday'] = _(u"Please, enter the correct date (Ex. 1984-12-30)")
                else:
                    data['birthday'] = birthday
            ticket = request.POST.get('ticket', '').strip()
            if not ticket:
                errors['ticket'] = _(u"Ticket number is required")
            else:
                data['ticket'] = ticket

            student_group = request.POST.get('student_group', '').strip()
            if not student_group:
                errors['student_group'] = _(u"Select group for student")
            else:
                groups = Group.objects.filter(pk=student_group)
                if len(groups) != 1:
                    errors['student_group'] = _(u"Select group for student")
                else:
                    data['student_group'] = Group.objects.get(pk=student_group)

            photo = request.FILES.get('photo')
            if photo:
                if photo.size > (2*1024*1024):
                    errors['photo'] = _(u'The file is too big. Must be less then 2MB')
                else:
                    try:
                        Image.open(photo).verify()
                    except Exception:
                        errors['photo'] = _(u"File is not an image")
                    else:
                        data['photo'] = photo

            if not errors:
                # create student object
                student = Student(**data)
                # save it to database
                student.save()

                # redirect user to students list
                messages.info(
                    request,
                    _(u'Student "%(first_name)s %(last_name)s" sucessfully added!') %
                    {'first_name': student.first_name, 'last_name': student.last_name},
                )
                return HttpResponseRedirect(reverse('home'))

            else:
                # render form with errors  and previous user input
                for error_key in errors.keys():
                    messages.error(request, errors[error_key])
                context['errors'] = errors

                return render(request, 'students/students_add.html',
                    context)
        elif request.POST.get('cancel_button') is not None:
            # redirect to home page on cancel button
            messages.info(
                request,
                _(u'Adding a student got canceled!'),
            )
            return HttpResponseRedirect(reverse('home'))
    else:
        # initial form render
        return render(request, 'students/students_add.html',
            context)
開發者ID:dimadvk,項目名稱:studentsdb,代碼行數:101,代碼來源:students_add.py


注:本文中的django.utils.image.Image.open方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。