Je veux créer des miniatures de coins arrondis automatiquement pour un projet particulier sur lequel je travaille, en utilisant quelque chose comme ceci: http://webdeveloperplus.com/php/create-thumbnail-images-with-rounded-corners/
Ce que j'aimerais idéalement faire, c'est trouver un moyen de connecter quelque chose comme ça dans le processus de création de vignettes lui-même et de le mettre en cache côté serveur. /wp-includes/media.php
ne semble pas avoir de crochets applicables, donc je vais peut-être devoir rouler le mien.
Des indices sur où commencer?
EDIT: Pas en CSS. Il y a eu de bonnes suggestions à ce sujet, mais j'utilise border-radius partout sur le site, et les images doivent spécifiquement être arrondies côté serveur. Merci
images
post-thumbnails
Dan Gayle
la source
la source
Réponses:
On dirait que vous pouvez vous connecter au
wp_create_thumbnail
filtre :Faites donc votre manipulation et retournez le résultat à
wp_create_thumbnail
.la source
Même si vous pouvez traiter des coins arrondis avec Php et l'image GD (vous devrez toujours choisir une couleur d'arrière-plan), c'est beaucoup de travail / code / traitement pour ce qui peut facilement être accompli avec JavaScript ou CSS3.
Pour les images arrondies dans CSS3, vous devez envelopper l'image dans un div et faire de l'image une image de fond de ce div, pas vraiment pratique.
Je pense donc que vous devez simplement utiliser jquery, simplement mettre le script en file d'attente lorsque cela est nécessaire et ajouter la classe jquery à votre miniature via un hook ou directement.
L'astuce javascript / jquery applique essentiellement 4 gifs de coin à l'image pour la faire apparaître arrondie. Il existe plusieurs jquery qui traînent sur les interwebs tels que http://maestric.com/doc/css/rounded_corners_images .
Ne dites à personne qu'ils ne sont pas vraiment ronds.
la source
border-radius
peut être appliqué directement à une balise IMG, sans aucun problème.Voici mon point de vue sur l'utilisation d'un des filtres d'image wordpress, j'ai essayé d'utiliser celui suggéré par Chip Bennett mais sans succès.
Ce que j'ai fait, c'est créer une taille personnalisée, puis vérifier chaque image telle qu'elle est créée si c'est cette taille spécifique et si c'est le cas, appliquer des filtres phpthumb. Idéalement, j'aimerais pouvoir simplement vérifier le nom de la taille d'image personnalisée, mais je n'ai pas encore compris comment le faire.
Si vous ajoutez ce code au fichier functions.php de votre thème, téléchargez phpthumb et définissez le chemin à parcourir. Je l'ai fait fonctionner sur mon installation locale de xampp, donc j'espère que cela devrait fonctionner aussi pour d'autres personnes. Les commentaires de phpThumb proviennent de l'exemple de démonstration simple.
la source
Il n'y a aucune raison de ne pas le faire avec CSS, cela fonctionne et sera pris en charge dans tous les principaux navigateurs, à l'exception d'IE 8 et des versions antérieures:
Si vous voulez vraiment prendre en charge IE, vous pouvez utiliser Modernizr qui ajoutera une classe de coins sans arrondis sur l'élément img cible dans les navigateurs incapables.
Ajoutez class = "coins arrondis" à vos miniatures et dans votre css:
J'ai fait un test rapide sur une image aléatoire sur la première page de WPCandy.com en ajoutant les coins à la classe d'images en utilisant Firebug. Voici les résultats.
Avant:
Après:
CSS est entré dans Firebug:
Pour vos coins non arrondis, utilisez l'une des méthodes de secours si vous en avez besoin.
la source
Quelles miniatures souhaitez-vous styliser, la taille de l'image "miniature" en général ou publier des miniatures?
Les deux peuvent facilement être réalisés via CSS - en particulier, la
border-radius
propriété; la réponse spécifique dépendra de vos besoins exacts. Je serai heureux de mettre à jour.PS IMHO va à TimThumb / route d'image mise en cache est sous-optimale. Utilisez simplement les images générées par WordPress, aux coins carrés (qui font déjà partie du cache d'objets), et utilisez CSS pour arrondir les coins.
la source
border-radius
fonctionne très bien sur les images. Je l'utilise pour commenter Gravatars dans mon propre thème.Lors d'une recherche sur Google, il est possible d'arrondir les coins avec GD mais les résultats ne sont pas les meilleurs; ils sont un peu irréguliers; mais c'est un appel subjectif de ma part: http://www.assemblysys.com/dataServices/php_roundedCorners.php
Si vous devez le faire; je recommande d'utiliser le script timthumb comme point de départ:
Projet Timthumb: http://timthumb.googlecode.com http://timthumb.googlecode.com/svn/trunk/timthumb.php
Stackoverflow a également un article à ce sujet: /programming/609109/rounded-corners-on-images-using-php
la source
Avez-vous jeté un coup d'œil aux coins arrondis ccs3pie et aux hacks CSS3, c'est-à-dire que cela devrait faire ce que vous voulez tout en forçant le bon vieux ie à se soumettre pour se conformer.
la source
OK c'est facile !!
Tout d'abord, comme les gens l'ont dit, la meilleure façon, la plus propre et la plus simple est d'utiliser le rayon de bordure CSS3. Cela fonctionne dans la plupart des navigateurs modernes, à l'exception du IE6-8 typique qui ne prend pas en charge ... bien que IE9 fera l'affaire.
Donc, si vous êtes comme moi et que vos clients utilisent tous IE, je recommanderais CSS3 Pie comme ci-dessus http://css3pie.com/ . Le seul inconvénient est qu'il gâche l'index z des images, donc si vous utilisez un curseur qui s'estompe, vous risquez d'avoir des problèmes.
Si vous n'avez pas envie d'utiliser CSS3 Pie, je recommanderais http://jquery.malsup.com/corner/ . Vous le liez simplement dans votre en-tête, avec jQuery et utilisez ce qui suit:
Il récupère la déclaration CSS3 et pour tout navigateur qui ne la prend pas en charge, il rend les coins arrondis via jquery.
Nous avons récemment utilisé ces deux éléments sur le site Web d'un client ici: http://www.theathenaprogramme.co.uk/
Travail fait :-) J'espère que cela vous aidera.
Modifier: je viens de remarquer que vous devez effectuer cette opération avant que l'image ne soit enregistrée via media.php. Je pense que ma solution n'est pas applicable dans ce cas.
la source
J'ai utilisé le plugin Get Post Image pour le faire ici: http://surfhatteras.com/
Get Post Image est un wrapper pour Get The Image WordPress Plugin et la bibliothèque phpThumb.
En l'utilisant, vous pouvez faire quelque chose comme
<?php get_post_image ('w=200&zc=1&fltr[]=ric|30|30'); ?>
arrondir les coins d'une image publiée. Ou vous pouvez vous-même emballer vos images: http://phpthumb.sourceforge.net/demo/demo/phpThumb.demo.demo.php#x33N'oubliez pas de mettre en cache! http://mrphp.com.au/code/image-cache-using-phpthumb-and-modrewrite
la source