Czy istnieje jakaś możliwość zmiany rozmiaru animowanych gifów za pomocą sorlu?Animowane zmiany rozmiaru gify za pomocą mini-miniatury
Odpowiedz
Wow, to jest prośba o funkcję, której nigdy bym się nie spodziewała! sorl.thumbnail
jest teraz konfigurowalny przez silnik i jest wyposażony w PIL i pgmagick. Sądzę, że istnieją sposoby na zmianę rozmiaru animowanych gifów imagemagick, więc może pgmagick może to zrobić, ale nie testowałem tego i jest bardzo mało prawdopodobne, aby pracował z dostarczonymi silnikami, tak jak jest.
Co nowego? czy sorl.thumbnail zmienił rozmiar animowanego obrazu gif teraz? Stwierdziłem, że ma on obsługę Pluggable Engine (ImageMagick, PIL, pgmagick w zestawie)? – newlife
Udało mi się sprawić, że sorl pracował z GIF.
- Musisz użyć magika obrazu lub zaplecza magick grafiki (PIL nie obsługuje zmiany rozmiaru gifa bez hakowania). Możesz także spróbować pgmagick, ale nie wiem, czy to zadziała.
umieścić je gdzieś w kodzie:
from sorl.thumbnail import base base.EXTENSIONS.update({'GIF': 'gif'})
Można spojrzeć na źródła sorl-thumnail znaleźć jak to działa
UPD: Jest niesprawdzone. Używaj tego tylko wtedy, gdy jesteś pewien, co robisz.
Mam rozwiązanie robocze (przetestowane za pomocą miniatury 11.12.1b). Wymaga Wand backend:
#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
będą dzielić mój przykład:
# -*- 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
- 1. Animowane gify do avi na Linuksie
- 2. animowane obrazy gify zamarzają w Firefox 4.0 i wyżej
- 3. C# WinForm, bez strzałki zmiany rozmiaru za pomocą GrowAndShrink
- 4. Zdarzenie zmiany rozmiaru kolumny QTableWidget
- 5. Animowanie gify na hover
- 6. Zmiana rozmiaru obrazu za pomocą C#
- 7. Scal zmiany za pomocą vimdiff
- 8. Najprostszy sposób zmiany czcionki i rozmiaru czcionki
- 9. Próba zmiany rozmiaru woluminu EB2fs
- 10. Wielokrotne zmiany rozmiaru w CodeIgniter
- 11. Jak wyłączyć kursor zmiany rozmiaru
- 12. GIMP - Skryptowanie zmiany rozmiaru płótna
- 13. Qt QTableWidget Kolumna zmiany rozmiaru
- 14. Zmiana rozmiaru obrazu warunkowego za pomocą Carrierwave
- 15. Przewiń do ostatniego UITableViewCell za pomocą scrollToRowAtIndexPath: atScrollPosition: animowane za pomocą metod NSFetchedResultsControllerDelegate
- 16. Zmiana rozmiaru wiersza poleceń za pomocą komend
- 17. Zmiana rozmiaru płótna za pomocą tkaniny js
- 18. Ograniczanie rozmiaru kwerendy za pomocą struktury encji
- 19. tworzyć animowane przycisk
- 20. Tworzenie elementów ItemsControl dla dzieci z możliwością zmiany rozmiaru za pomocą splittera
- 21. TableLayout Android i przycisk zmiany rozmiaru
- 22. Jak oglądać zmiany localstorage za pomocą AngularJS
- 23. Pozostawić okno dynamiczne zmiany rozmiaru po przejściu
- 24. Zmiana rozmiaru elementu wyzwala zdarzenie zmiany rozmiaru okna.
- 25. Zmiana rozmiaru siatki podczas zmiany rozmiaru okna przeglądarki
- 26. Dynamiczne zmiany rozmiaru BufferedImage w java
- 27. Iframe nie wywołuje zdarzenia zmiany rozmiaru
- 28. jQuery UI Stanowisko: Podczas zmiany rozmiaru okna
- 29. Kontroluj grubość czcionki bez zmiany rozmiaru czcionki
- 30. Jak wykonać panele z możliwością zmiany rozmiaru?
żadnych sukcesów na ten temat? –