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); ?>
실험적 효과를 살펴보겠습니다: