Simple comme bonjour… J'ai toujours un peu de mal à me dire qu'on peut mettre ce genre de classe « n'importe où ».
Pour ceux qui passeraient par ici, le lien de deux exemples de processeurs personnalisés avec PIL :
https://gist.github.com/1647660 et https://gist.github.com/1920535
> Où dois-je créer ce fichier ? Comment doit-il s'appeler ?
Tu le ranges/installe où tu veux du moment qu'il est disponible en tant que
module Python et ensuite il suffit de renseigner son chemin complet dans
settings.THUMBNAIL_ENGINE, par exemple :
THUMBNAIL_ENGINE = "mon.module.MaClasse"
Bref un simple chemin python standard qui se finit par la classe de ton
"engine" à utiliser.
Pour exemple, la définition par défaut de ce settings se trouve là :
https://github.com/sorl/sorl-
thumbnail/blob/master/sorl/thumbnail/conf/defaults.py#L24
sorl l'instancie ici :
https://github.com/sorl/sorl-
thumbnail/blob/master/sorl/thumbnail/default.py#L16
En utilisant cette petite fonction qui va loader le chemin complet vers la
Class ciblée :
https://github.com/sorl/sorl-
thumbnail/blob/master/sorl/thumbnail/helpers.py#L47
Mon premier message ici dont j'espère qu'il me permettra de trouver un moyen d'avancer.
Je cherche à créer un processeur d'image personnalisé en « subclassant » sorl-thumbnail, installé via pip dans mon projet.
Seulement, je n'ai pas le moindre début d'idée d'où écrire ce code.
Sur stackOverflow, j'ai trouvé ça : http://stackoverflow.com/questions/6151 … -thumbnail, qui propose une base de code pour étendre sorl-thumbnail.
you can implement custom processing by creating (by subclassing) an engine, setting THUMBNAIL_ENGINE and overriding the create() method.
For example, to add a processing option to generate rounded corners:
from sorl.thumbnail.engines.pil_engine import Engine class RoundedCornerEngine(Engine): def create(self, image, geometry, options): image = super(RoundedCornerEngine, self).create(image, geometry, options) image = self.cornerize(image, geometry, options) return image def cornerize(self, image, geometry, options): if 'cornerradius' in options: ...whatever... return image
and you'd call that in a template as (note the cornerradius option):
{% thumbnail my_image "300x150" format="PNG" cornerradius=10 as thumb %} <img class="thumb" src="{{ thumb.url }}"> {% endthumbnail %}
Où dois-je créer ce fichier ? Comment doit-il s'appeler ?
Et pour un peu plus tard, si vous avez déjà fait ce genre de choses (manipulation d'image via imageMagick ou PIL), où puis-je trouver quelques exemples pour me guider dans le remplacement de ce « …whatever… » ?
Merci d'avance de vos réponses.
]]>