资讯专栏INFORMATION COLUMN

PHP的ImageMagick使用;

余学文 / 787人阅读

摘要:我们只能把邓肯去掉第一个参数是图片的宽度第二个是高度图片裁剪的轴位置图片裁剪轴位置然后我们再把生成一个圆角就生成了少了邓肯现在马刺,外加一个伦纳德这里我重新写了文字,变成了

之前写了一个项目需要使用PHP的Imagick类进行图像的操作;个人感觉目前关于Imagick的文档虽然很多,但是比较乱。我会通过一个范例解释Imagick的简单的使用;


(1).创建一个新图片,宽500px,高300px,黑色,格式为png的图片
$img =new Imagick();
$img->newImage(500,300,"black","png")

(2).图片的叠加;

假设我们选取范例1中的$img作为背景,这个时候我们把第二张图片叠加到图片上;
选一张马刺gdp组合;

知道图片二的路径假定为$imageSrc="/home/XXXX/spurs.png";

第一步我们实例化这个图片

$imgtwo = new Imagick($imageSrc);

因为是要叠加,我们就需要把两张图的大小设置一样;
首先我们要活的第一张图片的大小(ps:这里我们也可以指定大小).

$height=$img->getImageHeight();//获取图片1高度
$width=$img->getImageWidth();//获取图片1宽度
第二步,对图片进行大小调整
$imgtwo->resizeImage($width,$height,Imagick::FILTER_LANCZOS,1);

resizeImage参数说明

bool Imagick::resizeImage ( int $columns , int $rows , int $filter , float $blur [, bool $bestfit = false ] )

参数解释:

columns 图片的宽度

rows 图片高度

filter 过滤器,用于过滤图片,有高斯filte根据情况而定

blur blur=1 为虚化, blur =-1 为锐化

第三部,叠加图片

使用compositeImage();

bool Imagick::compositeImage ( Imagick $composite_object , int $composite , int $x , int $y [, int $channel = Imagick::CHANNEL_ALL ] )

参数说明:

composite_object :用于合并的图片的Imagick对象

composite:合并操作,定义操作常量。 具体请查看 合并操作常量列表

x:相对图像顶点左上位置(0,0)的横坐标

y:相对图像顶点左上位置(0,0)的纵坐标

channel:通过传入一个通道常量,来开启通道模式。为了支持多个通道,可以通过二进制运算的操作来合并多个通道常量。

ps:这里是把图片二覆盖到图片一上

$img->compositeImage($imgtwo,$image->getImageCompose(),0,0)

生成图片如下:

最后

1.我们可以直接在网页上查看图片,但是要加一个header信息;

header("Content-Type: image/png");
echo $img;

2.可以把图片在指定目录中生成;

在当年目录下生成为img.png
$file="./img.png";
$img->writeImage($file);
这样就会在当前目录下生成图片img.png;
(3).在图片上配置文字

需要使用 ImagickDraw类;

第一步实例化ImagickDraw类:
$draw=new ImagickDraw();

设置字体颜色

$draw->setFillColor(new ImagickPixel("white"));

设置字体大小

$draw->setFontSize("25");

设置字体

$draw->setFont("../fonts/Arial.ttf");

设置字体方向

$draw->setTextAlignment(Imagick::ALIGN_RIGHT);

ps:

Imagick::ALIGN_RIGHT 朝右边

Imagick::ALIGN_LEFT 左边

Imagick::ALIGN_CENTER 中间

设置字体编码格式

$draw->setTextEncoding("utf-8")

画出文字

$draw->annotation(200,200,"GDP");

在底板上画出;

$img->drawImage($draw);


NBA历史上最伟大的组合GDP

(4).裁剪图片

这个夏天邓肯退役了,GDP组合解体。我们只能把邓肯去掉

$img->cropImage(300, 300, 0, 20);

第一个参数是图片的宽度

第二个是高度

图片裁剪的x轴位置

图片裁剪Y轴位置

然后我们再把生成一个圆角

$img->roundCorners(60, 60);

就生成了少了邓肯现在马刺,外加一个伦纳德

ps:这里我重新写了文字,变成了GP;

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22035.html

相关文章

  • win2008安装ImageMagick扩展遇到一些坑

    我的php环境是使用了phpstudy版本为:showImg(https://segmentfault.com/img/bVbfotx?w=281&h=240); 安装imageMagick现在开始 1·下载php_magick组件。下载地址一: http://windows.php.net/downlo...下载先看一下你的phpinfo php用的版本 showImg(https://segm...

    HelKyle 评论0 收藏0
  • Centos 下编译PHP图片扩展库 ImageMagick、MagickWandForPHP、im

    摘要:安装环境说明操作系统安装路径开始编译开始编译配置支持扩展修改以下内容增加扩展到重新启动开始编译配置支持扩展修改以下内容增加扩展到重新启动测试劳动结果查看模块是 安装环境说明: 操作系统:Centos 6.5 -64bit 安装路径:/usr/local/redis 开始编译 ImageMagick tar -zxvf ImageMagick-6.8.9-10.tar.gz cd Ima...

    netmou 评论0 收藏0
  • Centos 下编译PHP图片扩展库 ImageMagick、MagickWandForPHP、im

    摘要:安装环境说明操作系统安装路径开始编译开始编译配置支持扩展修改以下内容增加扩展到重新启动开始编译配置支持扩展修改以下内容增加扩展到重新启动测试劳动结果查看模块是 安装环境说明: 操作系统:Centos 6.5 -64bit 安装路径:/usr/local/redis 开始编译 ImageMagick tar -zxvf ImageMagick-6.8.9-10.tar.gz cd Ima...

    Labradors 评论0 收藏0
  • PHP使用ImageMagick生成base64图片

    摘要:个人博客本文原地址最近的项目中,需要用到画图和图片拼接效果,这里是一些开发过程里用到的一些点还有就是一些踩过的坑。通过生成图片格式,为前端所使用。需要注意的是前端得到的额数据里包含有回车字符,需要特殊处理才可以正确显示图片。 个人博客 https://duanruilong.github.io/blog/本文原地址https://duanruilong.github.io/blog/2...

    avwu 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<