JUIMAGE - Library for Render Thumbs with Support WebP et AVIF.
Créez des pouces pour Joomla! extension ou utilisation autonome.
composer require joomla-ua/juimage
Vous pouvez ensuite mettre à jour ultérieurement à l'aide du compositeur:
composer update
Après l'installation, vous devez exiger l'autoloader du compositeur:
require_once ( ' vendor/autoload.php ' );
$ config [ ' root_path ' ] = __DIR__ ;
$ config [ ' img_blank ' ] = ' images/logos ' ;
$ juImg = new JUImage Image ( $ config );
$ thumb = $ juImg -> render ( ' images/sampledata/fruitshop/apple.jpg ' , [
' w ' => ' 300 ' ,
' h ' => ' 100 ' ,
' q ' => ' 77 ' ,
' cache ' => ' img '
]);
echo ' <img src=" ' . $ thumb . ' " alt="Apple" width="300" height="100"> ' ;| Options mondiales | Description |
|---|---|
$root_path | Chemin racine pour votre site. Définir par défaut JPATH_BASE |
$img_blank | Chemin vers l'image par défaut. Par exemple, si l'image n'est pas trouvée affichez l'image par défaut noimage.png . Utilisez également l'option error_image si l'image n'est pas trouvée ou cassée (allez à l'option) |
Installez la bibliothèque d'extension (lib_juimage_v3.xxzip) en utilisant joomla! Extension Manager.
Code à utiliser dans votre extension.
JLoader:: register ( ' JUImage ' , JPATH_LIBRARIES . ' /juimage/JUImage.php ' );
$ juImg = new JUImage ();
$ thumb = $ juImg -> render ( ' images/sampledata/fruitshop/apple.jpg ' , [
' w ' => ' 300 ' ,
' h ' => ' 100 ' ,
' q ' => ' 77 ' ,
' cache ' => ' img '
]);
echo ' <img src=" ' . $ thumb . ' " alt="Apple" width="300"> ' ;ou
require_once ( JPATH_SITE . ' /libraries/juimage/vendor/autoload.php ' );
$ juImg = new JUImage Image ();
$ thumb = $ juImg -> render ( ' images/sampledata/fruitshop/apple.jpg ' , [
' w ' => ' 300 ' ,
' h ' => ' 100 ' ,
' q ' => ' 77 ' ,
' cache ' => ' img '
]);
echo ' <img src=" ' . $ thumb . ' " alt="Apple" width="300"> ' ; <?php
$ thumb = $ juImg -> render ( ' images/sampledata/fruitshop/apple.jpg ' , [
' w ' => ' 300 ' ,
' h ' => ' 100 ' ,
' q ' => ' 95 ' ,
' webp ' => true
]);
?>
<picture>
<source srcset=" <?php echo $ thumb -> webp ; ?> " type="image/webp">
<img src=" <?php echo $ thumb -> img ; ?> " alt="Apple" width="300" height="100">
</picture>Utilisez GD2 LIB pour les pouces Webp:
<?php
$ thumb = $ juImg -> render ( ' images/sampledata/fruitshop/apple.jpg ' , [
' w ' => ' 300 ' ,
' h ' => ' 100 ' ,
' q ' => ' 95 ' ,
' webp ' => true ,
' imagemagick ' => false
]);
?>| Commande webp | Taper | Défaut | Description |
|---|---|---|---|
| webp | Booléen | FAUX | Si true Ajouter la prise en charge de l'image Webp. Pour cette option, utilisez TAG <picture> , voir dans l'exemple. |
Format d'image AVIF (nécessite PHP 8.1.0)
<?php
$ thumb = $ juImg -> render ( ' images/sampledata/fruitshop/apple.jpg ' , [
' w ' => ' 300 ' ,
' h ' => ' 100 ' ,
' q ' => ' 95 ' ,
' avif ' => true
]);
?>
<picture>
<source srcset=" <?php echo $ thumb -> avif ; ?> " type="image/avif">
<img src=" <?php echo $ thumb -> img ; ?> " alt="Apple" width="300" height="100">
</picture>| Commande webp | Taper | Défaut | Description |
|---|---|---|---|
| avif | Booléen | FAUX | Si true Ajouter la prise en charge de l'image Webp. Pour cette option, utilisez TAG <picture> . Format d'image AVIF (nécessite PHP 8.1.0) |
<?php
$ thumb = $ juImg -> render ( ' images/sampledata/fruitshop/apple.jpg ' , [
' w ' => ' 300 ' ,
' h ' => ' 100 ' ,
' q ' => ' 95 ' ,
' avif ' => true ,
' webp ' => true
]);
?>
<picture>
<source srcset=" <?php echo $ thumb -> avif ; ?> " type="image/avif">
<source srcset=" <?php echo $ thumb -> webp ; ?> " type="image/webp">
<img src=" <?php echo $ thumb -> img ; ?> " alt="Apple" width="300" height="100">
</picture>YouTube:
$ thumb = $ juImg -> render ( ' https://www.youtube.com/watch?v=xxxxxxxxxxx ' , [
' w ' => ' 300 ' ,
' h ' => ' 100 '
]);Vimeo:
$ thumb = $ juImg -> render ( ' https://vimeo.com/xxxxxxxxx ' , [
' w ' => ' 300 ' ,
' h ' => ' 100 '
]); <?php
$ thumb = $ juImg -> render ( ' images/sampledata/fruitshop/apple.jpg ' , [
' w ' => ' 300 '
]);
// Image size for thumb
$ size = $ juImg -> size ( $ thumb );
echo ' <img src=" ' . $ thumb . ' " alt="Apple" width=" ' . $ size -> width . ' " height=" ' . $ size -> height . ' "> ' ; Ajoutez une option à ce tableau:
[
' w ' => ' 300 ' ,
' h ' => ' 100 ' ,
' q ' => ' 77 ' ,
' cache ' => ' img '
]| Commande | Description |
|---|---|
| cache | dossier pour les miniatures |
| error_image | Chemin vers l'image par défaut si l'image n'est pas trouvée ou cassée |
| w | Largeur maximale de la vignette de sortie dans les pixels |
| H | hauteur maximale de la vignette de sortie en pixels |
| WP | largeur maximale pour les images de portraits |
| HP | hauteur maximale pour les images de portraits |
| wl | Largeur maximale pour les images de paysage |
| HL | hauteur maximale pour les images de paysage |
| WS | Largeur maximale pour les images carrées |
| HS | hauteur maximale pour les images carrées |
| f | Format d'image de sortie ("jpeg", "png", "gif", "webp" ou "avif") |
| q | Compression JPEG (1 = pire, 95 = meilleur, 75 = par défaut) |
| sx | côté gauche du rectangle source (par défaut 0) (valeurs 0 <sx <1 représentent le pourcentage) |
| système | côté supérieur du rectangle source (par défaut 0) (valeurs 0 <sy <1 représentent le pourcentage) |
| swin | Largeur du rectangle source (FullWidth par défaut) (valeurs 0 <SW <1 représentent le pourcentage) |
| shot | hauteur du rectangle source (Fullheight par défaut) (valeurs 0 <sh <1 représentent le pourcentage) |
| zc | Zoom-Crop. Se révèlera automatiquement de la plus grande dimension afin que l'image remplisse la plus petite dimension (nécessite à la fois "w" et "h", remplace "iar", "far"). Réglé sur "1" ou "C" pour zoom-Crop vers le centre, ou réglé sur "t", "b", "l", "r", "tl", "tr", "bl", "br" pour graviter vers les directions supérieures / gauche / inférieures / droites (requies imageMagick pour les valeurs autres que "C" ou "1") |
| bg | Couleur hexagonale de fond (FFFFFF par défaut) |
| Colombie-Britannique | Couleur hexagonale de bordure (par défaut 000000) |
| xto | Vignette EXIF uniquement - réglé pour extraire uniquement la vignette EXIF et ne pas effectuer de traitement supplémentaire |
| rampe | Tourner par angle: angle de rotation en degrés positifs dans le sens antihoraire, négatif, dans le sens horaire |
| ardente | Auto Rotate: réglé sur "x" pour utiliser l'orientation EXIF stockée par caméra. Peut également être réglé sur "L" ou "L" pour le paysage, ou "P" ou "P" pour le portrait. " l" et "p" faire pivoter l'image dans le sens des aiguilles d'une montre, "L" et "P" faire pivoter l'image dans le sens antihoraire. |
| SFN | Numéro de trame source - Utilisez ce numéro / numéro de page pour les images source multi-trame / multi-pages (GIF, TIFF, etc.) |
| aoe | La sortie permet d'élargir - 1 = on, 0 = off. "Far" et "iar" l'emportent sur cela et permettent à la sortie plus grande que l'entrée) |
| iar | Ignorer le rapport d'aspect - Désactiver le redimensionnement proportionnel et l'image extensible pour s'adapter à "H" et "W" (qui doivent être définis). (1 = on, 0 = off) (remplace "far") |
| loin | Rapport d'aspect de force - L'image sera créée à la taille spécifiée par "W" et "H" (qui doit être définie). Alignement: l = gauche, r = droite, t = haut, b = bas, c = centre. BL, BR, TL, TR utilise la direction appropriée si l'image est paysage ou portrait. |
| DPI | Points par pouce - paramètre DPI d'entrée lors de l'importation à partir du format d'image vectoriel tel que PDF, WMF, etc. |
| Sia | Enregistrer l'image sous le nom de fichier par défaut pour enregistrer l'image générée comme. Spécifiez le nom de fichier de base, l'extension (par exemple: ".png") sera automatiquement ajoutée |
| maxb | Taille maximale des octets - La qualité de sortie est automatiquement set pour s'adapter à la vignette dans les octets "maxb" (la qualité de la compression est ajustée pour JPEG, la profondeur du bit est ajustée pour PNG et GIF) |
GNU General Public License version 3 ou version ultérieure; voir Licence.md
JUIMAGE est basé sur la classe PhpThumb () (James Heinrich) et la bibliothèque de taille rapide (Marc Alexander).
Merci à JetBrains pour avoir soutenu le projet en parrainant certains packs de produits dans leur programme de licence open source gratuite.