PHP 이미지 크기 조정 및 자르기 기술
지난 장에서 우리는 이미지의 워터마킹 기술을 배웠습니다. 워터마킹 기술은 사용되는 기능이 약간 변경된 것을 제외하면 이번 장에서 배울 스케일링 및 자르기 기술과 기본적으로 동일합니다.
일반적으로 사용되는 두 가지 기능은 다음과 같습니다.
| 函数名 | 函数说明 |
|---|---|
| imagecopyresampled | 重采样拷贝部分图像并调整大小 |
| imagecopyresized | 拷贝部分图像并调整大小 |
이 두 가지 기능을 살펴보겠습니다. 이 두 가지 기능은 사용하기 어렵지 않습니다. 다만 매개변수가 조금 복잡할 뿐입니다. 그리고 이미지의 크기 조정 또는 자르기를 완료하려면 다음을 수행하세요.
bool imagecopyresampled(resource $ target image, Resource $ source image, int $ x 대상이 시작되는 위치, int $ y 대상이 시작되는 위치 , int $ source 시작 x 위치, int $ source 시작 y 위치, int $ 대상 이미지 너비, int $ 대상 이미지 높이, int $ 소스 이미지 너비, int $ 소스 이미지 높이)
상단 이미지와 하단 이미지의 매개변수는 동일하니 참고해주세요.
bool imagecopyreized(resource $ target image, Resource $ source image, int $ target start x position, int $ target start y position, int $ source start x position, int $ source start y position, int $width of target image, int $height of target image, int $width of source image, int $height of source image)
이미지 크기 조정 및 자르기 방법은 동일합니다. 예, 차이점은 복사할 때 사진 전체가 복사되는지 아니면 사진의 일부가 복사되는지입니다.
조작 지침:
원본 이미지의 시작점(x, y)부터 시작하여 이미지의 너비와 높이를 지정합니다. 대상 이미지의 시작점(x, y)에 배치하고 이미지의 너비와 높이를 지정합니다.
1. 이미지를 확대해서 단계별로 진행합니다
1. 원본 이미지를 엽니다
2. 이미지 배율(확대/축소) 설정
3. 원본 이미지를 가져와 비율에 따라 크기를 조정합니다.
4. 대상 이미지
5 .조정된 크기의 소스 이미지를 대상에 넣습니다
6. 리소스를 파괴합니다
Fan Bingbing 크기를 조정합니다:

<?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);
?>
2. 이미지를 자르고 작업을 다음 단계로 나눕니다.
1. 원본 이미지와 대상 이미지를 엽니다
2. 원본 이미지의 점을 가로채서 너비와 높이를 설정합니다. 대상 이미지에 넣습니다. (자르기)
3. 이미지 저장 후 입력
4. 리소스 삭제
아래 사진에서 "degree"라는 단어를 잘라내어 넣어보겠습니다. 허스키 얼굴:
바이두 로고:

허스키 사진:

아이디어를 정리해 보겠습니다.
degree의 시작 좌표는 407, 154입니다.
degree라는 단어는 x에서 시작하고, 시작 너비는 및 y 좌표의 높이는: 80, 89
그림 속 허스키 얼굴의 x, y 좌표는: 281, 71
그림 속 허스키 얼굴의 x, y 좌표는 다음과 같습니다. 그림의 너비와 높이는 132, 160
우리는 모두 좌표와 너비, 높이를 알고 있습니다. 함수 사용법을 따르고 코드를 사용하여 이미지를 작동합니다.
<?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);
?>실험적 효과를 살펴보겠습니다:



