ホームページ  >  記事  >  PHPフレームワーク  >  thinkphp での画像操作について話しましょう

thinkphp での画像操作について話しましょう

藏色散人
藏色散人転載
2022-01-10 16:26:563049ブラウズ

次のthinkphp フレームワークチュートリアル コラムでは、thinkphp3.2.3 の画像操作について説明します。困っている友人の役に立てば幸いです。

thinkphp3.2.3 での画像操作を参照してください

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

フレームワークに依存しません

通常の状況では、gd ライブラリがインストールされます

Imagick が必要な場合は、 install https://pecl.php.net/package/imagick

インストール

composer require whereof/think-image

インスタンス化クラス ライブラリ

$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');

サムネイルの生成

thumb メソッドを使用してサムネイルを生成します

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

は他のタイプのサムネイル生成をサポートできます。設定には、次の定数または \whereof\ThinkImage\Image の対応する数値が含まれます:

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

Centered Cropping

// 生成一个居中裁剪为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 メソッドの 2 番目のパラメータは、ウォーターマークの位置には、次の Think\Imag クラス定数または対応する数値を渡すことができます:

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、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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。