technologie de mise à l'échelle et de recadrage d'image php

Dans le dernier chapitre, nous avons appris la technologie de filigrane des images. La technologie de filigrane est fondamentalement la même que la technologie de mise à l'échelle et de recadrage que nous apprendrons dans ce chapitre, sauf que les fonctions utilisées ont légèrement changé.

Les deux fonctions couramment utilisées sont les suivantes :

函数名函数说明
imagecopyresampled重采样拷贝部分图像并调整大小
imagecopyresized拷贝部分图像并调整大小

Jetons un coup d'œil à ces deux fonctions. Ces deux fonctions ne sont pas difficiles à utiliser. C'est juste que les paramètres sont un peu compliqués. Et pour terminer la mise à l'échelle ou le recadrage de l'image :

bool imagecopyresampled ( ressource $ image cible, ressource $ image source, int $ x position où commence la cible, int $ y position où commence la cible , int $ source Position x de départ, int $ position source de départ y, int $ largeur de l'image cible, int $ hauteur de l'image cible, int $ largeur de l'image source, int $ hauteur de l'image source)

Veuillez noter que les paramètres des images supérieure et inférieure sont les mêmes.

bool imagecopyresized ( ressource $image cible, ressource $image source, int $target start x position, int $target start y position, int $source start x position, int $source start y position, int $largeur de l'image cible, int $hauteur de l'image cible, int $largeur de l'image source, int $hauteur de l'image source)

Les méthodes de mise à l'échelle et de recadrage de l'image sont les mêmes Oui, le La différence est de savoir si l'image entière ou une partie de l'image est copiée lors de la copie.

Instructions de fonctionnement :
En partant du point de départ (x, y) de l'image source, précisez la largeur et la hauteur 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.

1. Zoomez l'image, nous allons étape par étape


Ouvrir l'image source

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

3. Obtenez l'image source et ajustez la taille en fonction du rapport

4. l'image cible

5. Mettez la taille ajustée de l'image source dans la cible

6. Détruisez les ressources

Nous allons mettre à l'échelle Fan Bingbing :

20161114147910942958296b354976a.png

<?php

//打开来源图片
$image = imagecreatefrompng('fbb.png');


//定义百分比,缩放到0.1大小
$percent = 0.1;


// 将图片宽高获取到
list($width, $height) = getimagesize('fbb.png');

//设置新的缩放的宽高
$new_width = $width * $percent;
$new_height = $height * $percent;

//创建新图片
$new_image = imagecreatetruecolor($new_width, $new_height);

//将原图$image按照指定的宽高,复制到$new_image指定的宽高大小中
imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

header('content-type:image/jpeg');
imagejpeg($new_image);
?>

999.png

2. Recadrez l'image, nous allons diviser l'opération en étapes :

1. Ouvrez l'image source et l'image cible

2. Interceptez les points dans l'image source et définissez la largeur et la hauteur. dans l’image cible. (Recadrer)

3. Enregistrez l'entrée de l'image

4. Détruisez les ressources

Nous allons rogner le mot "degré" dans l'image ci-dessous et le mettre sur le visage du husky :

Logo Baidu :

document_2015-09-22_56010df4559d3.png

Photo du husky :

10.png

Mêlons l'idée :

Les coordonnées de départ du degré sont : 407, 154

Le mot degré commence à partir de x, La largeur de départ et la hauteur de la coordonnée y sont : 80, 89

Les coordonnées x, y du visage du husky sur la photo sont : 281, 71

Les coordonnées x, y du visage du husky dans l'image La largeur et la hauteur sont : 132, 160

Nous connaissons tous les coordonnées, la largeur et la hauteur. Nous commençons à suivre l'utilisation de la fonction et à utiliser le code pour faire fonctionner l'image :

<?php
 $dst = imagecreatefrompng('hsq.png');
 $src = imagecreatefrompng('du.png');
 imagecopyresized($dst, $src, 281, 71, 407, 154, 132, 160, 80, 90);
 header('content-type:image/jpeg'); 
imagejpeg($dst); 
imagedestroy($dst);
 imagedestroy($src);
 ?>
<. 🎜> Jetons un coup d'œil à l'effet expérimental :

document_2015-09-22_56011105316ee.png

Formation continue
||
<?php //打开来源图片 $image = imagecreatefrompng('fbb.png'); //定义百分比,缩放到0.1大小 $percent = 0.1; // 将图片宽高获取到 list($width, $height) = getimagesize('fbb.png'); //设置新的缩放的宽高 $new_width = $width * $percent; $new_height = $height * $percent; //创建新图片 $new_image = imagecreatetruecolor($new_width, $new_height); //将原图$image按照指定的宽高,复制到$new_image指定的宽高大小中 imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); header('content-type:image/jpeg'); imagejpeg($new_image); ?>
soumettreRéinitialiser le code
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!