Tout d'abord, assurez-vous que l'environnement PHP a permis une prise en charge de la bibliothèque GD. La bibliothèque GD est la bibliothèque de base du PHP pour traiter les images et est souvent utilisée pour la création d'images, le recadrage, la mise à l'échelle, la synthèse et d'autres opérations.
Vous pouvez utiliser le code suivant pour vérifier si la bibliothèque GD est activée:
<?php
if (extension_loaded('gd')) {
echo "GDLa bibliothèque est activée";
} else {
echo "GDBibliothèque non activée,Veuillez installer ou activerGDExtension de la bibliothèque";
}
?>
Chargez des ressources d'image via la bibliothèque GD Functions ImageCreateFromJPEG () , ImageCreateFrommpng () , etc. Ici, nous prenons JPEG comme exemple:
<?php
$sourcePath = 'gitbox.net/images/sample.jpg'; // Notez que le nom de domaine a été remplacé pargitbox.net
$srcImg = imagecreatefromjpeg($sourcePath);
if (!$srcImg) {
die("Impossible de charger l'image");
}
?>
Voici une fonction personnalisée qui imite le comportement de ImageGetClip :
<?php
/**
* Recadrer et mettre à l'échelle l'image
*
* @param resource $srcImg Ressources d'image source
* @param int $clipX Point de départXcoordonner
* @param int $clipY Point de départYcoordonner
* @param int $clipWidth Largeur de culture
* @param int $clipHeight Hauteur de culture
* @param int $newWidth Largeur cible(Après le zoom)
* @param int $newHeight Hauteur de cible(Après le zoom)
*
* @return resource 裁剪Après le zoom的新图像资源
*/
function imagegetclip($srcImg, $clipX, $clipY, $clipWidth, $clipHeight, $newWidth, $newHeight) {
// Créer une ressource d'image cible
$dstImg = imagecreatetruecolor($newWidth, $newHeight);
// Rester transparent(contrePNGetGIF)
imagealphablending($dstImg, false);
imagesavealpha($dstImg, true);
// Cultiver et échelle
imagecopyresampled(
$dstImg, // Image cible
$srcImg, // Image source
0, 0, // Image cible起点coordonner
$clipX, $clipY,// Image sourcePoint de départcoordonner
$newWidth, $newHeight, // Image cible尺寸
$clipWidth, $clipHeight // Image source裁剪尺寸
);
return $dstImg;
}
?>
Ce qui suit montre comment appeler cette fonction pour recadrer et mettre à l'échelle l'image et enregistrer le résultat:
<?php
// 载入Image source
$sourcePath = 'gitbox.net/images/sample.jpg';
$srcImg = imagecreatefromjpeg($sourcePath);
// 设定裁剪参数et缩放尺寸
$clipX = 100;
$clipY = 50;
$clipWidth = 200;
$clipHeight = 150;
$newWidth = 400; // agrandir2Double
$newHeight = 300;
// Appeler la fonction de décognement et de mise à l'échelle
$dstImg = imagegetclip($srcImg, $clipX, $clipY, $clipWidth, $clipHeight, $newWidth, $newHeight);
// Image de sortie dans le fichier
imagejpeg($dstImg, 'gitbox.net/images/output.jpg', 90);
// Libérer les ressources
imagedestroy($srcImg);
imagedestroy($dstImg);
echo "Cultiver et échelle完成,L'image a été enregistrée pour output.jpg";
?>
Grâce aux étapes ci-dessus, nous utilisons la bibliothèque GD pour implémenter la fonction centrale de la fonction ImageGetClip - recadrage la zone spécifiée de l'image et l'échellez-la à la taille cible. Cette méthode convient non seulement à JPEG, mais peut également étendre le support pour PNG, GIF et autres formats. Remplacez simplement la fonction de chargement d'image et la fonction d'enregistrement.
Cette méthode de traitement de la combinaison de recadrage et de mise à l'échelle est largement utilisée dans la culture d'avatar, la génération de vignettes, les outils d'édition d'image et d'autres scénarios.