Comment créer automatiquement des vignettes après que PHP ait enregistré les images distantes sur le serveur ?

WBOY
Libérer: 2023-07-12 21:42:01
original
1352 Les gens l'ont consulté

Comment créer automatiquement des vignettes après que PHP ait enregistré les images distantes sur le serveur ?

Dans le développement Web, nous rencontrons souvent le besoin de sauvegarder des images distantes sur le serveur et de générer les vignettes correspondantes. En tant que langage de script côté serveur couramment utilisé, PHP fournit une multitude de fonctions et d'extensions qui peuvent facilement implémenter cette fonction. Cet article explique comment créer automatiquement des vignettes après avoir enregistré des images distantes sur le serveur à l'aide de PHP et fournit des exemples de code.

1. Enregistrer les images distantes sur le serveur

Tout d'abord, nous devons utiliser la fonction d'opération de fichiers de PHP pour enregistrer les images distantes sur le serveur. PHP fournit la fonction file_put_contents() pour écrire des chaînes dans des fichiers. Nous pouvons utiliser cette fonction pour enregistrer des images distantes dans des fichiers sous le chemin spécifié. Voici un exemple de code : file_put_contents()函数用于将字符串写入到文件中,我们可以利用该函数将远程图片保存到指定路径下的文件中。以下是一个示例代码:

$url = "http://example.com/image.jpg";
$savePath = "/path/to/save/image.jpg";

$imageData = file_get_contents($url);
file_put_contents($savePath, $imageData);
Copier après la connexion

以上代码中,$url变量存储了远程图片的URL地址,$savePath变量存储了保存图片的路径。首先使用file_get_contents()函数获取远程图片的内容,然后使用file_put_contents()函数将内容写入到指定路径下的文件中。

二、自动建立缩略图

接下来,我们需要使用PHP的图像处理函数来自动生成缩略图。PHP提供了imagecreatefromjpeg()函数用于从JPEG图像文件中创建新图像资源,imagecopyresized()函数用于调整图像大小并复制到新的图像资源中,imagejpeg()函数用于将图像资源保存为JPEG图像文件。以下是一个示例代码:

$thumbnailWidth = 200;
$thumbnailHeight = 200;
$thumbnailPath = "/path/to/save/thumbnail.jpg";

$sourceImage = imagecreatefromjpeg($savePath);
$thumbnailImage = imagecreatetruecolor($thumbnailWidth, $thumbnailHeight);

$sourceWidth = imagesx($sourceImage);
$sourceHeight = imagesy($sourceImage);

imagecopyresized($thumbnailImage, $sourceImage, 0, 0, 0, 0, $thumbnailWidth, $thumbnailHeight, $sourceWidth, $sourceHeight);
imagejpeg($thumbnailImage, $thumbnailPath);

imagedestroy($sourceImage);
imagedestroy($thumbnailImage);
Copier après la connexion

以上代码中,$thumbnailWidth$thumbnailHeight变量分别存储了缩略图的宽度和高度,$thumbnailPath变量存储了保存缩略图的路径。首先使用imagecreatefromjpeg()函数创建源图像资源,然后使用imagecreatetruecolor()函数创建新的缩略图像资源。接着使用imagesx()imagesy()函数获取源图像的宽度和高度,然后使用imagecopyresized()函数将源图像调整为缩略图的尺寸并复制到缩略图像资源中。最后使用imagejpeg()函数将缩略图保存为JPEG图像文件。最后使用imagedestroy()rrreee

Dans le code ci-dessus, la variable $url stocke l'adresse URL de l'image distante et la variable $savePath stocke le chemin pour enregistrer l'image. Utilisez d'abord la fonction file_get_contents() pour obtenir le contenu de l'image distante, puis utilisez la fonction file_put_contents() pour écrire le contenu dans le fichier sous le chemin spécifié.

2. Créer automatiquement des vignettes

Ensuite, nous devons utiliser la fonction de traitement d'image de PHP pour générer automatiquement des vignettes. PHP fournit la fonction imagecreatefromjpeg() pour créer une nouvelle ressource image à partir d'un fichier image JPEG, et la fonction imagecopyresized() pour redimensionner l'image et la copier dans une nouvelle image. resource. , la fonction imagejpeg() est utilisée pour enregistrer les ressources image sous forme de fichiers image JPEG. Voici un exemple de code :

rrreee

Dans le code ci-dessus, les variables $thumbnailWidth et $thumbnailHeight stockent respectivement la largeur et la hauteur de la vignette, $ thumbnailPathLa variable code> stocke le chemin pour enregistrer la vignette. Utilisez d’abord la fonction imagecreatefromjpeg() pour créer la ressource d’image source, puis utilisez la fonction imagecreatetruecolor() pour créer une nouvelle ressource d’image miniature. Utilisez ensuite les fonctions imagesx() et imagesy() pour obtenir la largeur et la hauteur de l'image source, puis utilisez la fonction imagecopyresized() fonction pour ajuster l'image source à la taille de la vignette et la copier dans la ressource d'image miniature. Enfin, utilisez la fonction imagejpeg() pour enregistrer la vignette sous forme de fichier image JPEG. Enfin, utilisez la fonction imagedestroy() pour libérer des ressources. 🎜🎜Résumé : 🎜🎜Grâce à l'introduction de cet article, nous avons appris à utiliser PHP pour enregistrer des images distantes sur le serveur et générer automatiquement des vignettes. Nous pouvons utiliser les fonctions d'exploitation de fichiers de PHP pour enregistrer des images distantes sur le serveur, puis utiliser les fonctions de traitement d'images de PHP pour générer automatiquement des vignettes. Grâce à la combinaison de ces deux étapes, nous pouvons facilement réaliser la fonction de sauvegarde d'images distantes et de génération de vignettes. 🎜🎜(Remarque : le code ci-dessus est uniquement à titre d'illustration, la mise en œuvre spécifique sera ajustée en fonction de la situation réelle.)🎜

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal