>  기사  >  PHP 프레임워크  >  thinkphp의 이미지 작업에 대해 이야기해보자

thinkphp의 이미지 작업에 대해 이야기해보자

藏色散人
藏色散人앞으로
2022-01-10 16:26:562998검색

다음thinkphp 프레임워크튜토리얼 칼럼에서는 thinkphp3.2.3의 이미지 작업을 소개하겠습니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!

thinkphp3.2.3의 이미지 작업을 참조하세요

https://www.kancloud.cn/manual/thinkphp/1878

어떤 프레임워크에도 의존하지 않습니다

정상적인 상황에서는 gd 라이브러리가 설치됩니다

Imagick이 필요하다면 https://pecl.php.net/package/imagick

Install

composer require whereof/think-image

Instantiation 클래스 라이브러리

$image = new \whereof\ThinkImage\Image();

GD 라이브러리를 설치하세요. 이미지 작업의 기본값입니다. Imagick 라이브러리를 사용해야 하는 경우 작업을 위해 다음과 같이 변경해야 합니다.

$image = new \whereof\ThinkImage\Image(\Think\Image::IMAGE_IMAGICK); 
// 或者采用
$image = new \whereof\ThinkImage\Image('Imagick');

이미지 작업

기본적인 이미지 작업 기능을 사용하는 방법을 살펴보겠습니다.

이미지 파일 열기

현재 항목 파일 디렉터리 아래에 1.jpg 파일이 있다고 가정합니다

open 메서드를 사용하여 관련 작업을 위해 이미지 파일을 엽니다.

$image = \whereof\ThinkImage\Image(); 
$image->open('./1.jpg');

다음 방법으로 단순화할 수도 있습니다.

$image = new \whereof\ThinkImage\Image(\whereof\ThinkImage\Image::IMAGE_GD,'./1.jpg'); // GD库
// 或者
$image = new \whereof\ThinkImage\Image(\whereof\ThinkImage\Image::IMAGE_IMAGICK,'./1.jpg');  // imagick库

이미지 정보 가져오기

이미지 크기, 유형 등을 포함하여 열린 이미지의 정보를 얻을 수 있습니다. 예:

$width = $image->width(); // 返回图片的宽度
$height = $image->height(); // 返回图片的高度
$type = $image->type(); // 返回图片的类型
$mime = $image->mime(); // 返回图片的mime类型
$size = $image->size(); // 返回图片的尺寸数组 0 图片宽度 1 图片高度

이미지 자르기

이미지 자르기 기능을 완료하려면 자르기 및 저장 방법을 사용하세요. .

//将图片裁剪为400x400并保存为corp.jpg
$image->crop(400, 400)->save('./crop.jpg');

는 특정 좌표에서 자르기를 지원합니다(예: (100, 30)에서 시작):

//将图片裁剪为400x400并保存为corp.jpg
$image->crop(400, 400,100,30)->save('./crop.jpg');

썸네일 생성

썸네일 생성을 위해 엄지 방법 사용

// 按照原图的比例生成一个最大为150*150的缩略图并保存为thumb.jpg
$image->thumb(150, 150)->save('./thumb.jpg');

은 다른 유형의 썸네일 생성을 지원할 수 있으며 설정에는 다음이 포함됩니다. 상수 또는 해당 숫자: whereofThinkImageImage

IMAGE_THUMB_SCALE     =   1 ; //等比例缩放类型
IMAGE_THUMB_FILLED    =   2 ; //缩放后填充类型
IMAGE_THUMB_CENTER    =   3 ; //居中裁剪类型
IMAGE_THUMB_NORTHWEST =   4 ; //左上角裁剪类型
IMAGE_THUMB_SOUTHEAST =   5 ; //右下角裁剪类型
IMAGE_THUMB_FIXED     =   6 ; //固定尺寸缩放类型
중앙 자르기

// 生成一个居中裁剪为150*150的缩略图并保存为thumb.jpg
$image->thumb(150, 150,\whereof\ThinkImage\Image::IMAGE_THUMB_CENTER)->save('./thumb.jpg');

왼쪽 상단 모서리 자르기

$image->thumb(150, 150,\whereof\ThinkImage\Image::IMAGE_THUMB_NORTHWEST)->save('./thumb.jpg');

스케일 패딩

$image->thumb(150, 150,\whereof\ThinkImage\Image::IMAGE_THUMB_FILLED)->save('./thumb.jpg');

고정 크기

$image->thumb(150, 150,\whereof\ThinkImage\Image::IMAGE_THUMB_FIXED)->save('./thumb.jpg');

이미지 워터마크 추가

//将图片裁剪为440x440并保存为corp.jpg
$image->crop(440, 440)->save('./crop.jpg');
// 给裁剪后的图片添加图片水印(水印文件位于./logo.png),位置为右下角,保存为water.gif
$image->water('./logo.png')->save("water.gif");
// 给原图添加水印并保存为water_o.gif(需要重新打开原图)
$image->open('./1.jpg')->water('./logo.png')->save("water_o.gif");

water 메소드의 두 번째 매개변수는 워터마크의 위치를 ​​나타냅니다. ThinkImag 클래스의 다음 상수 또는 해당 숫자를 전달할 수 있습니다:

IMAGE_WATER_NORTHWEST =   1 ; //左上角水印
IMAGE_WATER_NORTH     =   2 ; //上居中水印
IMAGE_WATER_NORTHEAST =   3 ; //右上角水印
IMAGE_WATER_WEST      =   4 ; //左居中水印
IMAGE_WATER_CENTER    =   5 ; //居中水印
IMAGE_WATER_EAST      =   6 ; //右居中水印
IMAGE_WATER_SOUTHWEST =   7 ; //左下角水印
IMAGE_WATER_SOUTH     =   8 ; //下居中水印
IMAGE_WATER_SOUTHEAST =   9 ; //右下角水印
예:

$image->open('./1.jpg')->water('./logo.png',\whereof\ThinkImage\Image::IMAGE_WATER_NORTHWEST)->save("water.jpg");
는 워터마크 이미지의 투명도도 지원할 수 있습니다(0~100, 기본값은 80). 예:

$image->open('./1.jpg')->water('./logo.png',\whereof\ThinkImage\Image::IMAGE_WATER_NORTHWEST,50)->save("water.jpg");
워터마크 이미지도 지원할 수 있습니다. 텍스트 워터마크를 추가하세요(항목 파일과 동일한 디렉토리에 1.ttf 글꼴 파일이 있다고 가정). 예:

$image->open('./1.jpg')->text('ThinkPHP','./1.ttf',20,'#000000',\whereof\ThinkImage\Image::IMAGE_WATER_SOUTHEAST)->save("new.jpg");
권장 학습: "

최신 10개 thinkphp 비디오 튜토리얼"

위 내용은 thinkphp의 이미지 작업에 대해 이야기해보자의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제