2011-01-17 69 views

cevap

6

Vay, bu bir özellik isteğini asla beklemeyeceğim! sorl.thumbnail şimdi motor yapılandırılabilir ve PIL ve pgmagick ile birlikte gelir. Imaginagick animasyonlu gifleri yeniden boyutlandirmanin yollari oldugunu düsünüyorum ve bu yüzden pgmagick bunu yapabilir, fakat bunu test etmedim ve bunun sevk edilen motorlarla çalismasini saglamiyorum.

+0

Yeni bir şey var mı? Şimdi sorl.thumbnail animasyonlu gif görüntüyü yeniden boyutlandırabilir miyim? Takılabilir Motor desteği (ImageMagick, PIL, pgmagick dahil) bulundu mu? – newlife

2

Gif ile çalışmayı başardım.

  1. Görüntü mandalını veya grafik magick arka ucunu kullanmanız gerekir (PIL, bazı hacking olmadan gif yeniden boyutlandırmayı desteklemez). Pgmagick'i de deneyebilirsiniz, ancak çalışıp çalışmayacağını bilmiyorum.
  2. kodunuzda bu biryere koy:

    from sorl.thumbnail import base 
    base.EXTENSIONS.update({'GIF': 'gif'}) 
    

Bu

UPD'yi nasıl çalıştığını bulmak için sorl-Küçük resimler kaynağında bir göz atabilirsiniz: Bu test edilmedi. Bunu yalnızca, yaptığınız şeyden eminseniz kullanın.

2

Çalışma çözümüm var (sorl-thumbnail 11.12.1b ile test edilmiştir).

#sorl_extensions.py 
from sorl.thumbnail.base import (
    ThumbnailBackend, EXTENSIONS, 
    default_settings as thumbnail_default_settings 
) 


EXTENSIONS.update({'GIF': 'gif'}) 


class GifThumbnailBackend(ThumbnailBackend): 
    def _get_format(self, file_): 
     file_extension = self.file_extension(file_) 

     if file_extension == '.jpg' or file_extension == '.jpeg': 
      return 'JPEG' 
     elif file_extension == '.png': 
      return 'PNG' 
     elif file_extension == '.gif': 
      return 'GIF' 
     else: 
      from django.conf import settings 

      return getattr(settings, 'THUMBNAIL_FORMAT', thumbnail_default_settings.THUMBNAIL_FORMAT) 

#settings.py 
THUMBNAIL_ENGINE = 'sorl.thumbnail.engines.wand_engine.Engine' 
THUMBNAIL_BACKEND = 'tools.sorl_extensions.GifThumbnailBackend' 
THUMBNAIL_PRESERVE_FORMAT = True 
0

benim örnek paylaşacak:

# -*- coding: utf-8 -*- 
import os 
from sorl.thumbnail import get_thumbnail 

def get_file_extension(obj): 
    filename, file_extension = os.path.splitext(obj) 
    return file_extension 

def get_thumbnail_size(obj, size): 
    img_format = 'JPEG' 
    if get_file_extension(obj.url) == '.png': 
     img_format = 'PNG' 
    if get_file_extension(obj.url) == '.gif': 
     from sorl.thumbnail import base 
     base.EXTENSIONS.update({'GIF': 'gif'}) 
     img_format = 'GIF' 
    return get_thumbnail(obj, size, quality=90, format=img_format).url 
İlgili konular