使用imagine/imagine实现制作一个图片

4 篇文章 0 订阅

在一般的后台系统中,管理员一般有一个默认的头像,有的系统是直接给没有设置头像的用户分配一个默认的图片作为默认头像,但是有的系统是根据管理员的用户名来生成一张默认的图片,这里我们使用imagine/imagine来实现根据指定的文字生成一张图片

imagine/imagine文档地址:https://imagine.readthedocs.io/en/stable/

一:安装imagine/imagine

composer require imagine/imagine

二:imagine/imagine简单方法介绍

1:imagine/imagine实例化

在使用imagine/imagine之前,我们需要对imagine/imagine进行实例化,如:

$imagine = new \Imagine\Gd\Imagine();//实例化Imagine类

或者

$imagine = new \Imagine\Imagick\Imagine();

2:打开一个指定的图像

$image = $imagine->open('image.jpg');

3:创建一个指定尺寸和背景色的空白图像

$palette = new \Imagine\Image\Palette\RGB();
$size  = new \Imagine\Image\Box(400, 300);//设置空白图像尺寸为400*300
$color = $palette->color('#000', 0);//设置空白图像的背景色为#000,透明度为0,透明度的取值为0-100,值越大透明度越小,0表示完全透明,100表示完全不透明
$image = $imagine->create($size, $color);//创建空白图像

4:给指定的图像设置尺寸

$size = new \Imagine\Image\Box(200, 200);
$image->resize($size)

5:给指定的图像增加文字水印

$text = '测试';//水印文字
$fontPath = 'fonts/msyh.ttf';//水印文字的字体
$white = $palette->color('fff');//水印文字的颜色
$font = $imagine->font($fontPath, 45, $white);//文字配置,参数一为设置字体,参数二为设置文字大小,参数三为设置文字颜色
$point = new \Imagine\Image\Point(40, 75);//设置文字的位置
$image->draw()
    ->text($text, $font, $point);

6:保存图片

$fileName = 'test.jpg';
$image->save($fileName, ['jpeg_quality' => 100]);//参数一为保存的图片地址,参数二为保存图片的质量等配置,常见配置可参考imagine/imagine文档

三:使用imagine/imagine实现制作一个指定文字的图片

实例如下:

$imagine = new \Imagine\Gd\Imagine();//实例化Imagine类
//设置图片的尺寸和背景颜色
$size = new \Imagine\Image\Box(200, 200);//设置图片的宽高
$palette = new \Imagine\Image\Palette\RGB();
$color = $palette->color('#000', 0);//设置图片的背景颜色
//创建一个指定尺寸和指定背景的图片
$image = $imagine->create($size, $color);
//在图片上增加文字
$text = '测试';
$fontPath = 'fonts/msyh.ttf';
$white = $palette->color('fff');
$font = $imagine->font($fontPath, 45, $white);//文字配置,参数一为设置字体,参数二为设置文字大小,参数三为设置文字颜色
$point = new \Imagine\Image\Point(40, 75);//设置文字的位置
$image->draw()
    ->text($text, $font, $point);
//保存图片
$fileName = 'test.jpg';
$image->save($fileName, ['jpeg_quality' => 100]);

根据如上的代码就可以生成一个指定文字的图片,如:

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值