{"id":24432,"date":"2021-05-18T15:59:00","date_gmt":"2021-05-18T12:59:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24432"},"modified":"2021-10-18T02:15:44","modified_gmt":"2021-10-17T23:15:44","slug":"optimisation-d-image-a-l-aide-du-package-artisansweb-image-optimizer","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fr\/optimisation-d-image-a-l-aide-du-package-artisansweb-image-optimizer\/","title":{"rendered":"Optimisation d&rsquo;image \u00e0 l&rsquo;aide du package artisansweb\/image-optimizer"},"content":{"rendered":"<p>Cela fait maintenant 4 ans que je dirige ce blog. Parall\u00e8lement \u00e0 ce blog, je g\u00e8re \u00e9galement une <a href=\"https:\/\/www.youtube.com\/channel\/UCosi8Kv8-EPLt5TBJLlsWJA\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">cha\u00eene YouTube<\/a> o\u00f9 je partage des vid\u00e9os qui montrent comment mettre en \u0153uvre mes articles.<\/p>\n<p>Je crois en l&rsquo;open source. Sur mon site Web, je ne propose aucun abonnement payant, je ne vends pas de livres \u00e9lectroniques ou de cours. J&rsquo;aime garder les ressources gratuites. Dans cet esprit, j&rsquo;ai cr\u00e9\u00e9 mon premier package GitHub <a href=\"https:\/\/github.com\/artisansweb\/image-optimizer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">artisansweb\/image-optimizer<\/a> qui se charge d&rsquo;optimiser les images pour votre site Web.<\/p>\n<p>J&rsquo;ai \u00e9crit quelques articles sur l&rsquo;optimisation d&rsquo;image dans le pass\u00e9. Jusqu&rsquo;\u00e0 pr\u00e9sent, TinyPNG \u00e9tait mon pr\u00e9f\u00e9r\u00e9 et il l&rsquo;est toujours. Mais la limitation avec TinyPNG est qu&rsquo;ils permettent d&rsquo;optimiser 500 images gratuites par mois. Au-dessus de 500 images, vous facturerez par image.<\/p>\n<p>Quelques articles pr\u00e9c\u00e9dents sur l&rsquo;optimisation d&rsquo;image :<\/p>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/telecharger-et-compresser-plusieurs-images-en-php\/\" title=\"T\u00e9l\u00e9charger et compresser plusieurs images en PHP\">T\u00e9l\u00e9charger et compresser plusieurs images en PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/comment-optimiser-l-image-lors-du-telechargement-en-php\/\" title=\"Comment optimiser l&#039;image lors du t\u00e9l\u00e9chargement en PHP\">Comment optimiser l&rsquo;image lors du t\u00e9l\u00e9chargement en PHP<\/a><\/li>\n<\/ul>\n<p>Il existe \u00e9galement d&rsquo;autres packages, mais ils n\u00e9cessitent l&rsquo;installation de logiciels tels que JpegOptim, Optipng, etc. sur notre machine. Ce n&rsquo;est pas non plus une solution r\u00e9alisable.<\/p>\n<p>L&rsquo;ann\u00e9e derni\u00e8re, je travaillais sur le projet d&rsquo;un client qui avait des milliers d&rsquo;images \u00e0 compresser. Nous recherchions un service open source et efficace qui puisse faire notre travail. Ensuite, nous avons <a href=\"http:\/\/resmush.it\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">d\u00e9couvert reSmush.it,<\/a> un service enti\u00e8rement gratuit pour l&rsquo;optimisation des images.<\/p>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/compresser-des-images-pour-un-site-web-a-l-aide-de-resmush-it-en-php\/\" title=\"Compresser des images pour un site Web en utilisant reSmush.it en PHP\">Compresser des images pour un site Web en utilisant reSmush.it en PHP<\/a><\/li>\n<\/ul>\n<p>Bien que j&rsquo;aie \u00e9crit un article sur reSmush.it, je sens que je peux cr\u00e9er un <a href=\"https:\/\/github.com\/artisansweb\/image-optimizer\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">package GitHub \u00e0<\/a> partir de celui-ci et je l&rsquo;ai fait. Si vous lisez mon article sur reSmush.it, vous constaterez qu&rsquo;il doit ajouter environ 25 \u00e0 30 lignes de code. Mais si vous optez pour le package, cela peut \u00eatre fait en 5 \u00e0 6 lignes.<\/p>\n<p>Cela \u00e9tant dit, voyons comment installer et utiliser <code>artisansweb\/image-optimizer<\/code>package.<\/p>\n<h3>Optimisation des images avec PHP<\/h3>\n<p>Dans un premier temps, vous devez installer le package \u00e0 l&rsquo;aide de Composer en ex\u00e9cutant la commande\u00a0:<\/p>\n<pre><code>composer require artisansweb\/image-optimizer<\/code><\/pre>\n<p>Lors de l&rsquo;installation du package, vous pouvez optimiser l&rsquo;image \u00e0 l&rsquo;aide du code ci-dessous.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\nuse ArtisansWebOptimizer;\n\u00a0\n$img = new Optimizer();\n\u00a0\n$source = 'SOURCE_PATH_OF_IMAGE';\n$img-&gt;optimize($source);<\/code><\/pre>\n<p>Ici, vous devez transmettre le chemin complet du r\u00e9pertoire de l&rsquo;image source et votre image source est optimis\u00e9e automatiquement. Parfois, vous devez conserver l&rsquo;image d&rsquo;origine et stocker la version optimis\u00e9e dans un autre r\u00e9pertoire. Dans ce cas, vous pouvez utiliser un deuxi\u00e8me param\u00e8tre pour la destination.<\/p>\n<pre><code>&lt;?php\n$source = 'SOURCE_PATH_OF_IMAGE';\n$destination = 'DESTINATION_PATH_OF_IMAGE';\n$img-&gt;optimize($source, $destination);<\/code><\/pre>\n<p>En utilisant le code ci-dessus, vous pouvez optimiser vos images qui se trouvent dans votre r\u00e9pertoire. Cependant, je recommanderais d&rsquo;optimiser l&rsquo;image lors du t\u00e9l\u00e9chargement afin que vous n&rsquo;ayez pas besoin d&rsquo;effectuer des t\u00e2ches d&rsquo;optimisation s\u00e9par\u00e9ment.<\/p>\n<p>L&rsquo;utilisateur peut optimiser l&rsquo;image sur le t\u00e9l\u00e9chargement comme suit.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\nuse ArtisansWebOptimizer;\n\u00a0\nif (isset($_POST['submit'])) {\n\u00a0\u00a0\u00a0\u00a0$img = new Optimizer();\n\u00a0\u00a0\u00a0\u00a0move_uploaded_file($_FILES['file']['tmp_name'], 'images\/'.$_FILES['file']['name']);\n\u00a0\u00a0\u00a0\u00a0$img-&gt;optimize('images\/'.$_FILES['file']['name']);\n}\n?&gt;\n\u00a0\n&lt;form method=\"post\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"file\" name=\"file\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"submit\" name=\"submit\" value=\"Submit\" \/&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Bien que reSmush.it ait compress\u00e9 des milliards d&rsquo;images jusqu&rsquo;\u00e0 pr\u00e9sent, il est possible que leur service soit en panne pour une raison quelconque. J&rsquo;ai g\u00e9r\u00e9 ce sc\u00e9nario dans le package. Pour une raison quelconque, si le package n&rsquo;obtient pas de version optimis\u00e9e de reSmush.it, il utilise comme solution de secours les m\u00e9thodes natives de PHP telles que imagecreatefromjpeg, imagecreatefrompng, imagecreatefromgif, imagejpeg pour l&rsquo;optimisation.<\/p>\n<p>Il y a plusieurs nouvelles fonctionnalit\u00e9s en cours que je vais ajouter dans le package et le publier bient\u00f4t.<\/p>\n<p>Je serai heureux si vous utilisez le package et faites-moi savoir comment cela fonctionne dans la section commentaire ci-dessous. Veuillez partager vos commentaires afin que nous puissions ensemble am\u00e9liorer ce package qui aidera la communaut\u00e9.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans cet article, je montre comment effectuer une t\u00e2che d&rsquo;optimisation d&rsquo;image en PHP \u00e0 l&rsquo;aide du package GitHub artisansweb\/image-optimizer. En utilisant ce package, vous n&rsquo;avez pas besoin<\/p>\n","protected":false},"author":1,"featured_media":20571,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[273],"tags":[844],"class_list":["post-24432","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-4","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24432","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/comments?post=24432"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24432\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media\/20571"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media?parent=24432"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/categories?post=24432"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/tags?post=24432"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}