Maison  >  Article  >  développement back-end  >  Comment effectuer la mise à l'échelle et le recadrage d'une image en PHP ? (exemples détaillés)

Comment effectuer la mise à l'échelle et le recadrage d'une image en PHP ? (exemples détaillés)

WBOY
WBOYoriginal
2021-10-20 11:54:423569parcourir

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 !

Comment effectuer la mise à l'échelle et le recadrage d'une image en PHP ? (exemples détaillés)

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的图片:

Comment effectuer la mise à léchelle et le recadrage dune image en PHP ? (exemples détaillés)

我们的代码需要做到以下步骤才能完成对图形的缩放:

  • 打开来源图片

  • 设置图片缩放百分比(缩放)

  • 获得来源图片,按比调整大小

  • 新建一个指定大小的图片为目标图

  • 将来源图调整后的大小放到目标中

  • 销毁资源

示例如下:

<?php
//打开来源图片
$a = imagecreatefrompng(&#39;dog.png&#39;);
//定义百分比,缩放到0.1大小
$percent = 0.1;
// 将图片宽高获取到
list($width, $height) = getimagesize(&#39;dog.png&#39;);
//设置新的缩放的宽高
$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(&#39;content-type:image/jpeg&#39;);
imagejpeg($new_image);
?>

输出结果:

Comment effectuer la mise à léchelle et le recadrage dune image en PHP ? (exemples détaillés)

由上述结果,通过imagecopyresampledh函数便完成了图像的缩放。

裁剪图片

裁剪图片,需要通过imagecopyresized

<strong>imagecopyresized</strong><strong> </strong> : Utilisé pour copier une partie de l'image et la redimensionner Redimensionner

Comment effectuer la mise à léchelle et le recadrage dune image en PHP ? (exemples détaillés)

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(&#39;dog.png&#39;);
     $src = imagecreatefrompng(&#39;logo.png&#39;);
     imagecopyresized($dst, $src, 0, 0, 0, 0, 52, 59, 52, 59);
     header(&#39;content-type:image/jpeg&#39;); 
    imagejpeg($dst); 
    imagedestroy($dst);
     imagedestroy($src);
     ?>
  • En partant du point de départ (x, y) de l'image source, la largeur et la hauteur spécifiées de l'image. Placez-le au point de départ (x, y) de l'image cible et spécifiez la largeur et la hauteur de l'image.

    Zoomer l'image
  • Zoomer l'image Nous préparons d'abord une image nommée dog.png :

  • Notre code doit suivre les étapes suivantes pour terminer la mise à l'échelle des graphiques :

  • Ouvrez l'image source


Définissez le pourcentage de mise à l'échelle de l'image (zoom)

Comment effectuer la mise à léchelle et le recadrage dune image en PHP ? (exemples détaillés)Obtenez l'image source et ajustez la taille en fonction du rapportComment effectuer la mise à léchelle et le recadrage dune image en PHP ? (exemples détaillés)


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 cibleComment effectuer la mise à léchelle et le recadrage dune image en PHP ? (exemples détaillés)

Détruisez la ressource

L'exemple est le suivant :🎜🎜rrreee🎜Résultat de sortie : 🎜🎜Comment effectuer la mise à léchelle et le recadrage dune image en PHP ? (exemples détaillés)🎜🎜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 le imagecopyresized 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!

Déclaration:
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