Maison > développement back-end > tutoriel php > Comment recadrer et redimensionner des images en utilisant PHP

Comment recadrer et redimensionner des images en utilisant PHP

王林
Libérer: 2023-08-18 13:06:01
original
1998 Les gens l'ont consulté

Comment recadrer et redimensionner des images en utilisant PHP

Comment utiliser PHP pour recadrer et zoomer des images

Introduction : En développement web, il est souvent nécessaire de recadrer et de zoomer des images. En tant que langage côté serveur populaire, PHP fournit une multitude de fonctions et de bibliothèques de traitement d'images pour faciliter diverses opérations sur les images. Cet article explique comment utiliser PHP pour recadrer et zoomer des images et fournit des exemples de code correspondants.

1. Recadrer l'image

Recadrer l'image signifie découper la partie dont nous avons besoin dans l'image originale. En PHP, le recadrage des images peut être réalisé à l'aide des fonctions fournies par la bibliothèque GD.

Étape 1 : Ouvrir l'image originale

Tout d'abord, nous devons ouvrir l'image originale et créer une ressource image à l'aide de fonctions telles que imagecreatefromjpeg() ou imagecreatefrompng() . imagecreatefromjpeg()imagecreatefrompng()等函数创建一个图片资源。

$sourceImage = imagecreatefromjpeg('original.jpg');
Copier après la connexion
Copier après la connexion

步骤2:创建目标图片

接下来,我们需要创建一个目标图片,作为裁剪后的结果。可以使用imagecreatetruecolor()函数创建一个与原始图片一样大小的图片资源。

$width = imagesx($sourceImage);
$height = imagesy($sourceImage);

$targetImage = imagecreatetruecolor($width, $height);
Copier après la connexion

步骤3:裁剪图片

使用函数imagecopy()将原始图片中的一部分复制到目标图片中。需要传入原始图片资源、目标图片资源、目标图片的起始坐标和原始图片的起始坐标。下面以从原始图片中截取中间一部分作为示例。

$targetX = 0;
$targetY = 0;
$sourceX = $width / 4;
$sourceY = $height / 4;
$targetWidth = $width / 2;
$targetHeight = $height / 2;
$sourceWidth = $width / 2;
$sourceHeight = $height / 2;

imagecopy($targetImage, $sourceImage, $targetX, $targetY, $sourceX, $sourceY, $targetWidth, $targetHeight);
Copier après la connexion

步骤4:保存结果图片

最后,我们需要将裁剪后的结果保存到文件中。使用imagejpeg()函数将目标图片保存为JPEG格式的文件。

imagejpeg($targetImage, 'cropped.jpg');
Copier après la connexion

至此,我们完成了对图片的裁剪操作。

二、缩放图片

缩放图片是指按照一定比例改变图片的尺寸。在PHP中,我们可以使用GD库提供的函数来实现图片的缩放。

步骤1:打开原始图片

同样,我们首先需要使用imagecreatefromjpeg()imagecreatefrompng()等函数打开原始图片。

$sourceImage = imagecreatefromjpeg('original.jpg');
Copier après la connexion
Copier après la connexion

步骤2:计算缩放后的尺寸

计算出目标图片的宽度和高度,可以按比例缩放或指定固定的尺寸。

$scale = 0.5; // 缩放比例,此处为缩小一半
$targetWidth = imagesx($sourceImage) * $scale;
$targetHeight = imagesy($sourceImage) * $scale;
Copier après la connexion

步骤3:创建目标图片

在创建目标图片时,需要使用imagecreatetruecolor()函数指定目标图片的尺寸。

$targetImage = imagecreatetruecolor($targetWidth, $targetHeight);
Copier après la connexion

步骤4:缩放图片

使用函数imagecopyresampled()将原始图片按照指定的尺寸缩放到目标图片中。

imagecopyresampled($targetImage, $sourceImage, 0, 0, 0, 0, $targetWidth, $targetHeight, imagesx($sourceImage), imagesy($sourceImage));
Copier après la connexion

步骤5:保存结果图片

最后,使用imagejpeg()imagepng()

imagejpeg($targetImage, 'resized.jpg');
Copier après la connexion
Étape 2 : Créer l'image cible

Ensuite, nous devons créer une image cible comme résultat recadré. Vous pouvez utiliser la fonction imagecreatetruecolor() pour créer une ressource image de la même taille que l'image d'origine.

rrreee

Étape 3 : Recadrer l'image

Utilisez la fonction imagecopy() pour copier une partie de l'image originale vers l'image cible. Vous devez transmettre la ressource image d'origine, la ressource image cible, les coordonnées de départ de l'image cible et les coordonnées de départ de l'image d'origine. Ce qui suit est un exemple de capture de la partie centrale de l'image originale.
    rrreee
  • Étape 4 : Enregistrez l'image résultante
  • Enfin, nous devons enregistrer le résultat recadré dans un fichier. Utilisez la fonction imagejpeg() pour enregistrer l'image cible sous forme de fichier au format JPEG.
  • rrreee
À ce stade, nous avons terminé l'opération de recadrage de l'image. 🎜🎜2. Zoom sur les images🎜🎜Zoomer sur les images signifie changer la taille de l'image selon un certain rapport. En PHP, nous pouvons utiliser les fonctions fournies par la bibliothèque GD pour réaliser la mise à l'échelle des images. 🎜🎜Étape 1 : Ouvrir l'image originale🎜🎜De même, nous devons d'abord ouvrir l'image originale à l'aide de fonctions telles que imagecreatefromjpeg() ou imagecreatefrompng(). 🎜rrreee🎜Étape 2 : Calculez la taille mise à l'échelle🎜🎜Calculez la largeur et la hauteur de l'image cible, qui peuvent être mises à l'échelle proportionnellement ou spécifier une taille fixe. 🎜rrreee🎜Étape 3 : Créer l'image cible🎜🎜Lors de la création de l'image cible, vous devez utiliser la fonction imagecreatetruecolor() pour spécifier la taille de l'image cible. 🎜rrreee🎜Étape 4 : Redimensionner l'image🎜🎜Utilisez la fonction imagecopyresampled() pour redimensionner l'image originale à l'image cible en fonction de la taille spécifiée. 🎜rrreee🎜Étape 5 : Enregistrez l'image résultante🎜🎜Enfin, utilisez des fonctions telles que imagejpeg() ou imagepng() pour enregistrer l'image cible sous forme de fichier. 🎜rrreee🎜 a terminé l'opération de zoom sur la photo. 🎜🎜Résumé : cet article explique comment utiliser PHP pour recadrer et zoomer des images, notamment ouvrir l'image d'origine, créer l'image cible, recadrer et mettre à l'échelle l'image et enregistrer l'image résultante. Grâce aux fonctions de la bibliothèque GD fournies par PHP, nous pouvons facilement implémenter diverses opérations sur les images. J'espère que cet article vous aidera à comprendre et à utiliser PHP pour le traitement d'images. 🎜🎜Références : 🎜🎜🎜Documentation officielle PHP : http://php.net/manual/en/ref.image.php 🎜🎜Manuel de référence de la bibliothèque GD : http://php.net/manual/en/book image. .php🎜🎜

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!

Étiquettes associées:
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