Maison développement back-end tutoriel php Développement PHP : Comment implémenter la fonction de compression d'image

Développement PHP : Comment implémenter la fonction de compression d'image

Sep 20, 2023 pm 03:04 PM
php开发 图片压缩 功能实现

Développement PHP : Comment implémenter la fonction de compression dimage

Développement PHP : Comment implémenter la fonction de compression d'images

Résumé : Dans le développement Web, il est souvent nécessaire de traiter un grand nombre d'images Afin d'améliorer la vitesse de chargement des pages Web et d'économiser de la bande passante, la compression des images est essentielle. Cet article explique comment utiliser PHP pour implémenter la fonction de compression d'image et fournit des exemples de code spécifiques.

Introduction :
Avec le développement rapide d'Internet, les images jouent un rôle de plus en plus important dans la conception Web. Cependant, un grand nombre d’images haute résolution mettront plus de temps à charger la page Web et donneront une mauvaise expérience aux utilisateurs. Afin de résoudre ce problème, nous pouvons utiliser PHP pour compresser l'image. Ce qui suit explique comment utiliser PHP pour implémenter la fonction de compression d'image.

Étape 1 : Obtenir le fichier image
Tout d'abord, nous devons obtenir le fichier image à partir de l'image téléchargée par l'utilisateur. Vous pouvez utiliser la variable globale $_FILES pour obtenir des informations sur le fichier téléchargé. Par exemple, le code suivant peut obtenir la taille, le type et l'emplacement de stockage temporaire du fichier téléchargé : $_FILES全局变量来获取上传文件的信息。例如,以下代码可以获取上传文件的大小、类型和临时存储位置:

$fileSize = $_FILES['image']['size'];
$fileType = $_FILES['image']['type'];
$tmpFilePath = $_FILES['image']['tmp_name'];
Copier après la connexion

步骤二:创建图像对象
接下来,我们需要使用PHP GD库创建一个图像对象。GD库是PHP的一个图像处理扩展,提供了一系列的图像处理函数。首先,我们需要根据图像类型来创建相应的图像对象。以下代码可以将上传的图片文件创建为图像对象:

$sourceImage = null;

// 根据图像类型创建图像对象
if ($fileType == 'image/jpeg' || $fileType == 'image/pjpeg') {
    $sourceImage = imagecreatefromjpeg($tmpFilePath);
}
elseif ($fileType == 'image/png') {
    $sourceImage = imagecreatefrompng($tmpFilePath);
}
elseif ($fileType == 'image/gif') {
    $sourceImage = imagecreatefromgif($tmpFilePath);
}
Copier après la connexion

步骤三:设置目标图片尺寸
在进行图片压缩之前,我们需要设置目标图片的尺寸。这里可以根据需求来设置,比如可以把图片尺寸压缩到某个具体的宽度或高度,或者按比例缩小。以下代码可以设置目标图片的尺寸:

// 目标图片的宽度和高度
$destWidth = 800;
$destHeight = 600;

// 创建目标图片对象
$destImage = imagecreatetruecolor($destWidth, $destHeight);
Copier après la connexion

步骤四:进行图片压缩
有了图像对象和目标尺寸之后,我们就可以进行图片压缩了。可以使用imagecopyresampled函数将源图像缩放到目标图像上。以下代码可以将源图像压缩到目标图像上:

// 进行图片压缩
imagecopyresampled($destImage, $sourceImage, 0, 0, 0, 0, $destWidth, $destHeight, imagesx($sourceImage), imagesy($sourceImage));
Copier après la connexion

步骤五:保存压缩后的图片
最后,我们将压缩后的图片保存到服务器上的特定位置,以供后续使用。可以使用imagejpeg

// 保存压缩后的图片
$destPath = 'compressed_image.jpg';
imagejpeg($destImage, $destPath, 80);
Copier après la connexion

Étape 2 : Créer un objet image

Ensuite, nous devons créer un objet image à l'aide de la bibliothèque PHP GD. La bibliothèque GD est une extension de traitement d'image pour PHP qui fournit une série de fonctions de traitement d'image. Tout d’abord, nous devons créer l’objet image correspondant en fonction du type d’image. Le code suivant peut créer un fichier image téléchargé en tant qu'objet image :

<?php
// 获取图片文件
$fileSize = $_FILES['image']['size'];
$fileType = $_FILES['image']['type'];
$tmpFilePath = $_FILES['image']['tmp_name'];

// 创建图像对象
$sourceImage = null;

// 根据图像类型创建图像对象
if ($fileType == 'image/jpeg' || $fileType == 'image/pjpeg') {
    $sourceImage = imagecreatefromjpeg($tmpFilePath);
}
elseif ($fileType == 'image/png') {
    $sourceImage = imagecreatefrompng($tmpFilePath);
}
elseif ($fileType == 'image/gif') {
    $sourceImage = imagecreatefromgif($tmpFilePath);
}

// 目标图片的宽度和高度
$destWidth = 800;
$destHeight = 600;

// 创建目标图片对象
$destImage = imagecreatetruecolor($destWidth, $destHeight);

// 进行图片压缩
imagecopyresampled($destImage, $sourceImage, 0, 0, 0, 0, $destWidth, $destHeight, imagesx($sourceImage), imagesy($sourceImage));

// 保存压缩后的图片
$destPath = 'compressed_image.jpg';
imagejpeg($destImage, $destPath, 80);
?>
Copier après la connexion
Étape 3 : Définir la taille de l'image cible

Avant d'effectuer la compression de l'image, nous devons définir la taille de l'image cible. Vous pouvez le définir ici en fonction de vos besoins. Par exemple, vous pouvez compresser la taille de l'image à une largeur ou une hauteur spécifique, ou la réduire proportionnellement. Le code suivant peut définir la taille de l'image cible :

rrreee🎜Étape 4 : Compression d'image🎜Après avoir l'objet image et la taille cible, nous pouvons compresser l'image. Vous pouvez utiliser la fonction imagecopyresampled pour redimensionner l'image source sur l'image cible. Le code suivant peut compresser l'image source sur l'image cible : 🎜rrreee🎜Étape 5 : Enregistrez l'image compressée🎜Enfin, nous enregistrons l'image compressée à un emplacement spécifique sur le serveur pour une utilisation ultérieure. Vous pouvez utiliser la fonction imagejpeg pour enregistrer des objets image sous forme de fichiers image JPEG. Le code suivant peut enregistrer l'image compressée à l'emplacement spécifié : 🎜rrreee🎜Résumé : 🎜Grâce aux étapes ci-dessus, nous pouvons utiliser PHP pour implémenter la fonction de compression d'image. Obtenez d’abord le fichier image téléchargé, puis créez un objet image, définissez la taille de l’image cible, effectuez la compression de l’image et enfin enregistrez l’image compressée sur le serveur. Cela peut améliorer la vitesse de chargement des images et économiser de la bande passante dans le développement Web, offrant ainsi aux utilisateurs une meilleure expérience. 🎜🎜Annexe : Exemple de code complet🎜rrreee

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment utiliser Memcache dans le développement PHP ? Comment utiliser Memcache dans le développement PHP ? Nov 07, 2023 pm 12:49 PM

Comment utiliser Memcache dans le développement PHP ?

Comment utiliser Laravel pour implémenter des fonctions de gestion des droits des utilisateurs Comment utiliser Laravel pour implémenter des fonctions de gestion des droits des utilisateurs Nov 02, 2023 pm 02:09 PM

Comment utiliser Laravel pour implémenter des fonctions de gestion des droits des utilisateurs

L'applet WeChat implémente la fonction de téléchargement d'images L'applet WeChat implémente la fonction de téléchargement d'images Nov 21, 2023 am 09:08 AM

L'applet WeChat implémente la fonction de téléchargement d'images

Comment utiliser Laravel pour implémenter la fonction de code de vérification Comment utiliser Laravel pour implémenter la fonction de code de vérification Nov 04, 2023 am 10:42 AM

Comment utiliser Laravel pour implémenter la fonction de code de vérification

Utilisez uniapp pour implémenter la fonction de compression d'image Utilisez uniapp pour implémenter la fonction de compression d'image Nov 21, 2023 pm 06:36 PM

Utilisez uniapp pour implémenter la fonction de compression d'image

Comment améliorer le classement des moteurs de recherche avec le développement du cache PHP Comment améliorer le classement des moteurs de recherche avec le développement du cache PHP Nov 07, 2023 pm 12:56 PM

Comment améliorer le classement des moteurs de recherche avec le développement du cache PHP

Utilisez uniapp pour implémenter la fonction de lecture vidéo Utilisez uniapp pour implémenter la fonction de lecture vidéo Nov 21, 2023 pm 02:53 PM

Utilisez uniapp pour implémenter la fonction de lecture vidéo

Compétences en développement Java révélées : implémentation de fonctions de compression et de recadrage d'images Compétences en développement Java révélées : implémentation de fonctions de compression et de recadrage d'images Nov 20, 2023 pm 03:27 PM

Compétences en développement Java révélées : implémentation de fonctions de compression et de recadrage d'images

See all articles