Bonjour à tous,
Je souhaite flouter des images que je récupère en base de données.
J'ai donc crée une extension twig mais cela ne fonctionne pas car j'utilise des fonctions php "imagejpeg()" et "imagefilter()" et j'ai besoin d'un header(content-type: image/jpeg) pour afficher ces images ce qui n'est possible dans un template.
Comment puis je faire pour flouter des images (sans utiliser de CSS) ?
Pour vous aider voici mon code :
Ma balise img dans ma vue twig :
Mon extension twig :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <img class="img-thumbnail" src="{{src|flou}}" width="150px" height="150px" alt="..."/>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 <?php namespace monprojet\NotificationBundle\Twig; use Symfony\Component\HttpFoundation\Response; class TwigExtension extends \Twig_Extension { public function getFilters() { return array( new \Twig_SimpleFilter('flou', array($this, 'flouFilter')), ); } public function flouFilter($image) { $response = new Response(); $response->headers->set('Content-Type', 'image/jpeg'); $response->send(); $imageFlou = @imagecreatefromjpeg($image); imagejpeg($imageFlou); imagefilter($imageFlou, IMG_FILTER_GAUSSIAN_BLUR); imagedestroy($imageFlou); } public function getName() { return 'acme_extension'; } }
Partager