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");