Maison > Article > développement back-end > Comment effectuer la mise à l'échelle et le recadrage d'une image en PHP ? (exemples détaillés)
Dans l'article précédent, je vous ai présenté "Comment dessiner un code de vérification graphique via PHP ?" ", qui présente comment dessiner du texte en PHP et comment dessiner des codes de vérification graphique basés sur des connaissances antérieures. Dans cet article, voyons comment redimensionner et recadrer des graphiques. J'espère que cela pourra aider tout le monde !
Plus tôt, nous avons appris à dessiner un code de vérification graphique, puis voyons comment implémenter la mise à l'échelle et le recadrage d'image en PHP. Mais avant de comprendre la mise à l'échelle et le recadrage des images, commençons par connaître les deux fonctions suivantes :
<strong>imagecopyresampled</strong><strong> </strong>
: Utilisé pour rééchantillonner, copier une partie de l'image et la redimensionner <strong>imagecopyresampled</strong><strong> </strong>
:用于重采样拷贝部分图像并调整大小
<strong>imagecopyresized</strong><strong> </strong>
:用于拷贝部分图像并调整大小
这两个函数拷贝图片的,可以用于完成图像的缩放或者裁剪。它们的语法格式参数是一样的,不同的是它们拷贝的图片是部分还是整张的。它们的语法格式如下:
imagecopyresampled ($目标图 ,$来源图,$目标开始的x位置,$目标开始的y位置,$来源开始的x位置,$来源开始的y位置,$目标图片的宽 ,$目标图片的高,$来源图片的宽 ,$来源图片的高 )
从来源图片的开始点(x,y)起,指定的宽高的大小图片。放至到目标图片的起点(x,y),指定宽高大小的图片中。
缩放图片
缩放图片首先我们先准备一张名为dog.png的图片:
我们的代码需要做到以下步骤才能完成对图形的缩放:
打开来源图片
设置图片缩放百分比(缩放)
获得来源图片,按比调整大小
新建一个指定大小的图片为目标图
将来源图调整后的大小放到目标中
销毁资源
示例如下:
<?php //打开来源图片 $a = imagecreatefrompng('dog.png'); //定义百分比,缩放到0.1大小 $percent = 0.1; // 将图片宽高获取到 list($width, $height) = getimagesize('dog.png'); //设置新的缩放的宽高 $new_width = $width * $percent; $new_height = $height * $percent; //创建新图片 $new_image = imagecreatetruecolor($new_width, $new_height); //将原图$image按照指定的宽高,复制到$new_image指定的宽高大小中 imagecopyresampled($new_image, $a, 0, 0, 0, 0, $new_width, $new_height, $width, $height); header('content-type:image/jpeg'); imagejpeg($new_image); ?>
输出结果:
由上述结果,通过imagecopyresampledh函数便完成了图像的缩放。
裁剪图片
裁剪图片,需要通过imagecopyresized
<strong>imagecopyresized</strong><strong> </strong>
: Utilisé pour copier une partie de l'image et la redimensionner Redimensionner
Ces deux fonctions copient des images et peuvent être utilisées pour compléter la mise à l'échelle ou le recadrage de l'image. Leurs paramètres de format de syntaxe sont les mêmes, la différence est s'ils copient une partie de l'image ou l'image entière. Leur format de syntaxe est le suivant :
<?php $dst = imagecreatefrompng('dog.png'); $src = imagecreatefrompng('logo.png'); imagecopyresized($dst, $src, 0, 0, 0, 0, 52, 59, 52, 59); header('content-type:image/jpeg'); imagejpeg($dst); imagedestroy($dst); imagedestroy($src); ?>
Notre code doit suivre les étapes suivantes pour terminer la mise à l'échelle des graphiques :
Obtenez l'image source et ajustez la taille en fonction du rapport
Créez un nouveau spécifié L'image de la taille est l'image cible
Mettez la taille ajustée de l'image source dans la cible
Détruisez la ressourceL'exemple est le suivant :🎜🎜rrreee🎜Résultat de sortie : 🎜🎜🎜🎜De les résultats ci-dessus, il est complété par la fonction imagecopyresampledh Mise à l'échelle de l'image. 🎜🎜🎜Recadrez l'image🎜🎜🎜Recadrez l'image, vous devez utiliser leimagecopyresized
fonction pour y parvenir. Ensuite, expliquons-le à travers un exemple : 🎜🎜J'ai deux images nommées dog.png et logo.png🎜🎜🎜🎜🎜Maintenant, je veux recadrer une partie de l'image du logo et la placer sur l'image du chien. Comment dois-je y parvenir. ça ? Du drap de laine ? Voici les principales étapes : 🎜🎜🎜🎜Ouvrez l'image source et l'image cible 🎜🎜🎜🎜Capturez les points dans l'image source et définissez la largeur et la hauteur. dans l’image cible. (Recadrer) 🎜🎜🎜🎜Enregistrer la saisie de l'image🎜🎜🎜🎜Détruire les ressources🎜🎜🎜🎜L'opération réelle est la suivante : 🎜🎜🎜Dans l'image du logo, je souhaite recadrer la partie texte et conserver uniquement la partie image Nous. peut savoir ce que nous voulons La partie de l'image retenue commence à (0,0) et se termine à (52,59). 🎜🎜🎜🎜🎜🎜Ensuite, nous placerons l'image recadrée dans le coin supérieur gauche de l'image cible. Les coordonnées sont de (0, 0) à (52, 59). Maintenant que nous avons trié les idées, le code. est le suivant : 🎜 🎜rrreee🎜Résultat de sortie : 🎜🎜🎜🎜🎜À partir des résultats ci-dessus, nous avons terminé le recadrage de l'image via la fonction imagecopyresizedh. 🎜🎜Apprentissage recommandé : "🎜Tutoriel vidéo 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!