


Comment gérer la compression d'image lors de l'enregistrement d'images distantes à l'aide de PHP ?
Comment gérer la compression d'image lors de l'enregistrement d'images distantes à l'aide de PHP ?
Dans le développement réel, nous avons souvent besoin d'obtenir des images du réseau et de les enregistrer sur le serveur local. Cependant, certaines images distantes peuvent être trop volumineuses, ce qui nous oblige à les compresser pour réduire l'espace de stockage et augmenter la vitesse de chargement. PHP fournit des extensions puissantes pour gérer la compression d'images, dont les plus couramment utilisées sont la bibliothèque GD et la bibliothèque Imagick.
La bibliothèque GD est une bibliothèque de traitement d'images populaire qui fournit de nombreuses fonctions pour créer, éditer et enregistrer des images. Voici un exemple d'utilisation de la bibliothèque GD pour la compression d'images :
function compressImage($url, $newName, $quality = 75) { // 从URL获取图片 $image = file_get_contents($url); // 创建图像资源 $imageRes = imagecreatefromstring($image); // 获取图像信息 $width = imagesx($imageRes); $height = imagesy($imageRes); // 创建新图像资源 $newImageRes = imagecreatetruecolor($width, $height); // 复制并压缩图像 imagecopyresampled($newImageRes, $imageRes, 0, 0, 0, 0, $width, $height, $width, $height); // 保存图像 imagejpeg($newImageRes, $newName, $quality); // 释放资源 imagedestroy($newImageRes); imagedestroy($imageRes); }
Le code ci-dessus utilise d'abord la fonction file_get_contents
pour obtenir l'image à partir de l'URL spécifiée et la stocke dans la variable $image </code >Moyen. Ensuite, convertissez-le en ressource image requise par la bibliothèque GD via la fonction <code>imagecreatefromstring
. file_get_contents
函数从指定的URL获取图片,并将其存储到变量$image
中。然后,通过imagecreatefromstring
函数将其转换为GD库所需的图像资源。
接下来,获取图像的宽度和高度,并使用imagecreatetruecolor
函数创建一个与原始图像大小相同的新图像资源。
然后,使用imagecopyresampled
函数将原始图像复制到新图像资源中,并进行压缩。这里的压缩质量由$quality
参数指定,默认为75。
最后,通过imagejpeg
函数将压缩后的图像保存到指定的文件名$newName
中。
在使用这个函数时,你可以根据需要进行调整。你可以通过修改$quality
参数的值来改变压缩质量,数值越高表示质量越好,文件大小越大。
除了GD库,还可以使用Imagick库来进行图片压缩。Imagick是一个强大的图像处理库,它提供了更多高级的图片处理功能。以下是使用Imagick库进行图片压缩的示例:
function compressImage($url, $newName, $quality = 75) { // 实例化Imagick对象 $image = new Imagick($url); // 设置压缩质量 $image->setImageCompressionQuality($quality); // 保存图像 $image->writeImage($newName); // 销毁对象 $image->destroy(); }
使用Imagick库时,首先通过new Imagick
创建一个Imagick对象,并将远程图片的URL作为参数传递给它。
然后,使用setImageCompressionQuality
方法来设置压缩质量。
最后,使用writeImage
方法将压缩后的图像保存到指定的文件名$newName
中,并使用destroy
imagecreatetruecolor
pour créer une nouvelle ressource d'image avec la même taille que l'image d'origine. Ensuite, utilisez la fonction imagecopyresampled
pour copier l'image originale dans une nouvelle ressource d'image et la compresser. La qualité de compression ici est spécifiée par le paramètre $quality
et la valeur par défaut est 75. 🎜🎜Enfin, enregistrez l'image compressée sous le nom de fichier spécifié $newName
via la fonction imagejpeg
. 🎜🎜Lorsque vous utilisez cette fonction, vous pouvez l'ajuster selon vos besoins. Vous pouvez changer la qualité de la compression en modifiant la valeur du paramètre $quality
. Plus la valeur est élevée, meilleure est la qualité et plus la taille du fichier est grande. 🎜🎜En plus de la bibliothèque GD, vous pouvez également utiliser la bibliothèque Imagick pour la compression d'images. Imagick est une puissante bibliothèque de traitement d'image qui fournit des fonctions de traitement d'image plus avancées. Voici un exemple de compression d'image utilisant la bibliothèque Imagick : 🎜rrreee🎜 Lorsque vous utilisez la bibliothèque Imagick, créez d'abord un objet Imagick via new Imagick
et transmettez-lui l'URL de l'image distante en paramètre . 🎜🎜Ensuite, utilisez la méthode setImageCompressionQuality
pour définir la qualité de compression. 🎜🎜Enfin, utilisez la méthode writeImage
pour enregistrer l'image compressée sous le nom de fichier spécifié $newName
, et utilisez la méthode destroy
pour détruire le objet. 🎜🎜Que vous utilisiez la bibliothèque GD ou la bibliothèque Imagick, vous pouvez choisir la méthode qui vous convient pour la compression d'images en fonction de vos besoins. Ces méthodes peuvent non seulement réduire l'espace de stockage des images, mais également améliorer la vitesse de chargement des pages Web et améliorer l'expérience utilisateur. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

CakePHP est un framework MVC open source. Cela facilite grandement le développement, le déploiement et la maintenance des applications. CakePHP dispose d'un certain nombre de bibliothèques pour réduire la surcharge des tâches les plus courantes.

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et
