{"id":17917,"date":"2024-08-13T23:04:13","date_gmt":"2024-08-13T23:04:13","guid":{"rendered":"https:\/\/www.directimpactsolutions.com\/comment-redimensionner-une-image-en-php\/"},"modified":"2025-05-01T04:38:18","modified_gmt":"2025-05-01T04:38:18","slug":"comment-redimensionner-une-image-en-php","status":"publish","type":"post","link":"https:\/\/www.directimpactsolutions.com\/fr\/comment-redimensionner-une-image-en-php\/","title":{"rendered":"Comment redimensionner une image en PHP"},"content":{"rendered":"<div class=\"wp-block-uagb-image uagb-block-72dfaf4c wp-block-uagb-image--layout-default wp-block-uagb-image--effect-static wp-block-uagb-image--align-none\"><figure class=\"wp-block-uagb-image__figure\"><img decoding=\"async\"  sizes=\"auto, (max-width: 480px) 150px\" src=\"https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2024\/05\/Resize-an-image-in-php-1024x576.jpg\" alt=\"\" width=\"600\" height=\"576\" title=\"\" loading=\"lazy\" role=\"img\"><\/figure><\/div><div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div><p>Lorsque vous cr\u00e9ez un site web en <a href=\"https:\/\/www.directimpactsolutions.com\/fr\/laravel\/\">Laravel<\/a> (ou tout autre framework bas\u00e9 sur PHP) et que les utilisateurs t\u00e9l\u00e9chargent des images, vous utiliserez probablement une biblioth\u00e8que pour manipuler et traiter ces images. Les appareils photo des t\u00e9l\u00e9phones portables capturant des images plus grandes et de meilleure r\u00e9solution, les images brutes qui sont t\u00e9l\u00e9charg\u00e9es peuvent rapidement remplir l&rsquo;espace disponible sur le disque dur et causer des probl\u00e8mes de performance sur le site web. <\/p><p>Bien que PHP dispose de biblioth\u00e8ques de traitement d&rsquo;images telles que GD et <a href=\"https:\/\/github.com\/Imagick\/imagick\" target=\"_blank\" rel=\"noreferrer noopener\">Imagick<\/a>, celles-ci ne sont pas toujours faciles \u00e0 utiliser. Il existe un certain nombre de biblioth\u00e8ques tierces qui facilitent le traitement des images. <\/p><p>Dans cet article, nous allons utiliser <a href=\"https:\/\/github.com\/spatie\/image\" target=\"_blank\" rel=\"noreferrer noopener\">Spatie Image<\/a>, une biblioth\u00e8que PHP de traitement d&rsquo;images d\u00e9velopp\u00e9e par <a href=\"https:\/\/spatie.be\/open-source\" target=\"_blank\" rel=\"noreferrer noopener\">Spatie<\/a>, qui cr\u00e9e un certain nombre de biblioth\u00e8ques open source pour Laravel et PHP. Elle fournit une interface facile \u00e0 utiliser pour les manipulations d&rsquo;images courantes telles que le redimensionnement, le recadrage et l&rsquo;ajout d&rsquo;effets. <\/p><div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><nav><ul><li class=\"\"><a href=\"#largeur-et-hauteur\">Largeur et hauteur<\/a><\/li><li class=\"\"><a href=\"#redimensionner\">Redimensionner<\/a><\/li><li class=\"\"><a href=\"#ajuster\">Ajuster<\/a><\/li><li class=\"\"><a href=\"#recadrer\">Recadrer<\/a><\/li><li class=\"\"><a href=\"#ajustements\">Ajustements<\/a><\/li><li class=\"\"><a href=\"#effets\">Effets<\/a><\/li><li class=\"\"><a href=\"#filigrane\">Filigrane<\/a><\/li><li class=\"\"><a href=\"#texte\">Texte<\/a><\/li><\/ul><\/nav><\/div><div class=\"wp-block-uagb-advanced-heading uagb-block-a98b2fa2\"><h2 class=\"uagb-heading-text\">Installation et utilisation de base<\/h2><\/div><p><\/p><p>L&rsquo;installation se fait \u00e0 l&rsquo;aide d&rsquo;une commande composer assez simple :<\/p><pre class=\"wp-block-code\"><code>composer require Spatie Image<\/code><\/pre><p>Vous pouvez ensuite utiliser la classe <code>Image<\/code> pour charger et manipuler des images.<\/p><pre class=\"wp-block-code\"><code>use Spatie\\Image\\Image;\n\n$image = Image::load('example.jpg)\n  -&gt;width(50)\n  -&gt;save();<\/code><\/pre><p>L&rsquo;appel \u00e0 <code>save<\/code> sans aucun param\u00e8tre \u00e9crase le fichier existant. Si vous souhaitez enregistrer dans un nouveau fichier, vous devez transmettre le nouveau chemin d&rsquo;acc\u00e8s au fichier \u00e0 la m\u00e9thode <code>save<\/code>. Vous pouvez enregistrer dans un format de fichier diff\u00e9rent en modifiant l&rsquo;extension.  <\/p><pre class=\"wp-block-code\"><code>use Spatie\\Image\\Image;\n\n$image = Image::load('example.jpg)\n  -&gt;save('example.png');<\/code><\/pre><div class=\"wp-block-uagb-advanced-heading uagb-block-79d83f77\"><h2 class=\"uagb-heading-text\">Redimensionner une image en PHP<\/h2><\/div><p><\/p><p>Spatie Image propose plusieurs fa\u00e7ons de redimensionner une image.<\/p><h3 class=\"wp-block-heading has-ast-global-color-2-color has-text-color has-link-color wp-elements-e0f8d2fc774ae0e1f756faac8436b2f5\" id=\"width-and-height\">Largeur et hauteur<\/h3><p>Les fonctions <code>width<\/code> et <code>height<\/code> prennent comme param\u00e8tres les dimensions souhait\u00e9es en pixels et redimensionnent l&rsquo;image en cons\u00e9quence. L&rsquo;image redimensionn\u00e9e sera contenue dans les dimensions donn\u00e9es <code>$width<\/code> et <code>$height<\/code> en respectant le rapport d&rsquo;aspect d&rsquo;origine. <\/p><pre class=\"wp-block-code\"><code>Image::load('example.png')\n    -&gt;width(300)\n    -&gt;height(250)\n    -&gt;save();<\/code><\/pre><h3 class=\"wp-block-heading has-ast-global-color-2-color has-text-color has-link-color wp-elements-91925b0c4e836f61eaa077acb54cca73\" id=\"resize\">Redimensionner<\/h3><p>La fonction resize agit comme un raccourci, permettant de d\u00e9finir la largeur et la hauteur \u00e0 l&rsquo;aide d&rsquo;une seule m\u00e9thode.<\/p><pre class=\"wp-block-code\"><code>Image::load('example.png')\n    -&gt;resize(300, 250)\n    -&gt;save();<\/code><\/pre><h3 class=\"wp-block-heading has-ast-global-color-2-color has-text-color has-link-color wp-elements-54740e49b9260ef94208996adbccbac9\" id=\"fit\">Ajuster<\/h3><p>La fonction Fit te permet de redimensionner l&rsquo;image \u00e0 une largeur et une hauteur donn\u00e9es, mais donne un peu plus de contr\u00f4le sur la fa\u00e7on dont l&rsquo;image est redimensionn\u00e9e.<\/p><ul class=\"wp-block-list\"><li><code>Fit::Contain<\/code> redimensionne l&rsquo;image pour qu&rsquo;elle tienne dans les limites de la largeur et de la hauteur sans la recadrer, la d\u00e9former ou modifier le rapport hauteur\/largeur.<\/li>\n\n<li><code>Fit::Max<\/code> redimensionne l&rsquo;image pour qu&rsquo;elle tienne dans les limites de la largeur et de la hauteur sans la recadrer, la d\u00e9former ou modifier le rapport hauteur\/largeur, et n&rsquo;augmente pas la taille de l&rsquo;image si elle est plus petite que la taille de sortie.<\/li>\n\n<li><code>Fit::Fill<\/code>  redimensionne l&rsquo;image pour qu&rsquo;elle tienne dans les limites de largeur et de hauteur sans la recadrer ni la d\u00e9former, et remplit l&rsquo;espace restant avec la couleur d&rsquo;arri\u00e8re-plan (d\u00e9finie \u00e0 l&rsquo;aide de la fonction <code>background<\/code> ). L&rsquo;image obtenue correspondra aux dimensions impos\u00e9es. <\/li>\n\n<li><code>Fit::Stretch<\/code>  \u00e9tire l&rsquo;image pour qu&rsquo;elle corresponde exactement aux dimensions impos\u00e9es. L&rsquo;image r\u00e9sultante remplira les dimensions et ne conservera pas le rapport d&rsquo;aspect de l&rsquo;image d&rsquo;entr\u00e9e. <\/li>\n\n<li><code>Fit::Crop<\/code>  redimensionne l&rsquo;image pour remplir les limites de largeur et de hauteur et recadre les donn\u00e9es exc\u00e9dentaires. L&rsquo;image r\u00e9sultante correspondra aux contraintes de largeur et de hauteur sans d\u00e9former l&rsquo;image. <\/li><\/ul><h3 class=\"wp-block-heading has-ast-global-color-2-color has-text-color has-link-color wp-elements-083d4c13e5236b8655268e14ea0afc7b\" id=\"crop\">Recadrer<\/h3><p>En appelant la m\u00e9thode <code>crop<\/code>, une partie de l&rsquo;image sera recadr\u00e9e aux dimensions (pixels) donn\u00e9es par <code>$width<\/code> et <code>$height<\/code>. Utilisez <code>$cropMethod<\/code> pour sp\u00e9cifier la partie \u00e0 d\u00e9couper. <\/p><p>Les valeurs <code>CropPosition<\/code>s suivantes sont disponibles dans l&rsquo;\u00e9num\u00e9ration : <code>TopLeft<\/code>,  <code>Top<\/code>,  <code>TopRight<\/code>,  <code>Left<\/code>,  <code>Center<\/code>,  <code>Right<\/code>,  <code>BottomLeft<\/code>,  <code>Bottom<\/code>,  <code>BottomRight<\/code>.<\/p><pre class=\"wp-block-code\"><code>Image::load('example.jpg')\n    -&gt;crop(250, 250, CropPosition::TopRight)\n    -&gt;save();<\/code><\/pre><div class=\"wp-block-uagb-advanced-heading uagb-block-926f06db\"><h2 class=\"uagb-heading-text\">Manipulation de l&rsquo;image<\/h2><\/div><p><\/p><p>Spatie Image propose un certain nombre d&rsquo;autres m\u00e9thodes pour manipuler une image.<\/p><h3 class=\"wp-block-heading has-ast-global-color-2-color has-text-color has-link-color wp-elements-0f8d32613ba13519ca4d4b6de5bd1712\" id=\"adjustments\">Ajustements<\/h3><p>Pour r\u00e9gler la luminosit\u00e9, le contraste et le gamma de l&rsquo;image.<\/p><pre class=\"wp-block-code\"><code>Image::load('example.jpg')\n    -&gt;brightness(-20)\n    -&gt;save();<\/code><\/pre><h3 class=\"wp-block-heading has-ast-global-color-2-color has-text-color has-link-color wp-elements-24cc766524237598dbb4cddcf882dd9b\" id=\"effects\">Effets<\/h3><p>Pour ajouter des effets tels que flou, pixellisation, niveaux de gris et s\u00e9pia \u00e0 l&rsquo;image.<\/p><pre class=\"wp-block-code\"><code>Image::load('example.jpg')\n    -&gt;blur(20)\n    -&gt;save();<\/code><\/pre><h3 class=\"wp-block-heading has-ast-global-color-2-color has-text-color has-link-color wp-elements-5786f2f1a253172f665e4fd65ee0e0d7\" id=\"watermarks\">Filigrane<\/h3><p>Pour ajouter une autre image en filigrane sur l&rsquo;image.<\/p><pre class=\"wp-block-code\"><code>Image::load('example.jpg')\n    -&gt;watermark('watermark.png', AlignPosition::center)\n    -&gt;save();<\/code><\/pre><h3 class=\"wp-block-heading has-ast-global-color-2-color has-text-color has-link-color wp-elements-d38b36450e908e33101275bfac42f11d\" id=\"text\">Texte<\/h3><p>Pour ajouter du texte \u00e0 l&rsquo;image.<\/p><pre class=\"wp-block-code\"><code>Image::load('example.jpg')\n    -&gt;text('Hello!')\n    -&gt;save();<\/code><\/pre><p>Bien entendu, vous pouvez combiner toutes ces manipulations en un seul appel. Par exemple, si nous voulons cr\u00e9er une petite version en niveaux de gris de l&rsquo;image, nous pourrions faire quelque chose comme ceci : <\/p><pre class=\"wp-block-code\"><code>Image::load('example.jpg')\n    -&gt;resize(64, 64)\n    -&gt;greyscale()\n    -&gt;brighten(20)\n    -&gt;save();<\/code><\/pre><p>Vous pouvez consulter la documentation <a href=\"https:\/\/spatie.be\/docs\/image\/v3\/introduction\" target=\"_blank\" rel=\"noreferrer noopener\">ici<\/a> pour plus de d\u00e9tails sur cette biblioth\u00e8que de code.<\/p>","protected":false},"excerpt":{"rendered":"<p>Lorsque vous cr\u00e9ez un site web en Laravel (ou tout autre framework bas\u00e9 sur PHP) et que les utilisateurs t\u00e9l\u00e9chargent des images, vous utiliserez probablement une biblioth\u00e8que pour manipuler et traiter ces images. Les appareils photo des t\u00e9l\u00e9phones portables capturant des images plus grandes et de meilleure r\u00e9solution, les images brutes qui sont t\u00e9l\u00e9charg\u00e9es peuvent &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.directimpactsolutions.com\/fr\/comment-redimensionner-une-image-en-php\/\"> <span class=\"screen-reader-text\">Comment redimensionner une image en PHP<\/span> Lire la suite >><\/a><\/p>\n","protected":false},"author":9,"featured_media":17077,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","footnotes":""},"categories":[37],"tags":[154,332],"class_list":["post-17917","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web","tag-laravel-fr","tag-redimensionner-une-image"],"uagb_featured_image_src":{"full":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2024\/05\/Resize-an-image-in-php.jpg",1365,768,false],"thumbnail":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2024\/05\/Resize-an-image-in-php-150x150.jpg",150,150,true],"medium":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2024\/05\/Resize-an-image-in-php-300x169.jpg",300,169,true],"medium_large":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2024\/05\/Resize-an-image-in-php-768x432.jpg",768,432,true],"large":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2024\/05\/Resize-an-image-in-php-1024x576.jpg",1024,576,true],"1536x1536":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2024\/05\/Resize-an-image-in-php.jpg",1365,768,false],"2048x2048":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2024\/05\/Resize-an-image-in-php.jpg",1365,768,false],"woocommerce_thumbnail":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2024\/05\/Resize-an-image-in-php-300x300.jpg",300,300,true],"woocommerce_single":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2024\/05\/Resize-an-image-in-php-600x338.jpg",600,338,true],"woocommerce_gallery_thumbnail":["https:\/\/www.directimpactsolutions.com\/wp-content\/uploads\/2024\/05\/Resize-an-image-in-php-100x100.jpg",100,100,true]},"uagb_author_info":{"display_name":"Alan Bruce","author_link":"https:\/\/www.directimpactsolutions.com\/fr\/author\/alan-bruce\/"},"uagb_comment_info":0,"uagb_excerpt":"Lorsque vous cr\u00e9ez un site web en Laravel (ou tout autre framework bas\u00e9 sur PHP) et que les utilisateurs t\u00e9l\u00e9chargent des images, vous utiliserez probablement une biblioth\u00e8que pour manipuler et traiter ces images. Les appareils photo des t\u00e9l\u00e9phones portables capturant des images plus grandes et de meilleure r\u00e9solution, les images brutes qui sont t\u00e9l\u00e9charg\u00e9es peuvent\u2026","_links":{"self":[{"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/posts\/17917","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/comments?post=17917"}],"version-history":[{"count":3,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/posts\/17917\/revisions"}],"predecessor-version":[{"id":20051,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/posts\/17917\/revisions\/20051"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/media\/17077"}],"wp:attachment":[{"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/media?parent=17917"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/categories?post=17917"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.directimpactsolutions.com\/fr\/wp-json\/wp\/v2\/tags?post=17917"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}