PHP使用imagemagick扩展处理图片
2015-06-09 15:29
676 查看
这方面的文档比较少,记录一下自己实际用到的一些:
所有可用的接口函数地址:http://cn.php.net/imagick
复制一个图片:
$src3 = new Imagick("/home/jianche51/src.jpg");
$src3->writeImage("/home/jianche51/test.jpg");
$src3->clear();
$src3->destroy();
缩放图片:
$src4 = new Imagick("/home/jianche51/src.jpg");
$src4->resizeImage(287,189,Imagick::FILTER_HAMMING,1.0);/* 把图片缩放为287189大小 /
$src4->writeImage("/home/jianche51/test.jpg");
$src4->clear();
$src4->destroy();
网络抓图,从网上下载一个图片(其实就是将网络图片复制到本地,):
$src3 = new Imagick("http://pic6.58cdn.com.cn/p1/big/n_t0d6135438a5448017925a_b2ab66059eaeefce.jpg");
$src3->writeImage("/home/jianche51/new/car.jpg");
$src3->clear();
$src3->destroy();
给图片加水印:
$waterPic = new Imagick("/home/jianche51/new/logo.jpg");/* 要加的水印 /
$src1->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
$src1->setImageArtifact('compose:args', "1,0,-0.5,0.5");
$src1->compositeImage($waterPic, Imagick::COMPOSITE_OVER, 450, 350);/ 在原图的450350位置打上水印图片 /
$src1->writeImage("/home/jianche51/test.jpg");
$waterPic->clear();
$waterPic->destroy();
$src1->clear();
$src1->destroy();
获取图片宽和高:
$src1 = new Imagick("/home/jianche51/src.jpg");
$src1_width = $src1->getImageWidth();
$src1_height = $src1->getImageHeight();
imagemagick不但可以处理图片,还可以处理pdf文件,应该是把pdf每一页都当作一个图片看待了,我们有个需求是在pdf加上我们的logo,代码如下:
$waterPic = new Imagick('logo.png'); /* 读取logo图片,以下设置了放到pdf上的logo图片大小 */
$waterPicWidth = $waterPic->getImageWidth();
$waterPicHeight = $waterPic->getImageHeight();
$waterPic->resizeImage($waterPicWidth/2,$waterPicHeight/2,Imagick::FILTER_HAMMING,1.0);
所有可用的接口函数地址:http://cn.php.net/imagick
复制一个图片:
$src3 = new Imagick("/home/jianche51/src.jpg");
$src3->writeImage("/home/jianche51/test.jpg");
$src3->clear();
$src3->destroy();
缩放图片:
$src4 = new Imagick("/home/jianche51/src.jpg");
$src4->resizeImage(287,189,Imagick::FILTER_HAMMING,1.0);/* 把图片缩放为287189大小 /
$src4->writeImage("/home/jianche51/test.jpg");
$src4->clear();
$src4->destroy();
网络抓图,从网上下载一个图片(其实就是将网络图片复制到本地,):
$src3 = new Imagick("http://pic6.58cdn.com.cn/p1/big/n_t0d6135438a5448017925a_b2ab66059eaeefce.jpg");
$src3->writeImage("/home/jianche51/new/car.jpg");
$src3->clear();
$src3->destroy();
给图片加水印:
$waterPic = new Imagick("/home/jianche51/new/logo.jpg");/* 要加的水印 /
$src1->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
$src1->setImageArtifact('compose:args', "1,0,-0.5,0.5");
$src1->compositeImage($waterPic, Imagick::COMPOSITE_OVER, 450, 350);/ 在原图的450350位置打上水印图片 /
$src1->writeImage("/home/jianche51/test.jpg");
$waterPic->clear();
$waterPic->destroy();
$src1->clear();
$src1->destroy();
获取图片宽和高:
$src1 = new Imagick("/home/jianche51/src.jpg");
$src1_width = $src1->getImageWidth();
$src1_height = $src1->getImageHeight();
imagemagick不但可以处理图片,还可以处理pdf文件,应该是把pdf每一页都当作一个图片看待了,我们有个需求是在pdf加上我们的logo,代码如下:
$waterPic = new Imagick('logo.png'); /* 读取logo图片,以下设置了放到pdf上的logo图片大小 */
$waterPicWidth = $waterPic->getImageWidth();
$waterPicHeight = $waterPic->getImageHeight();
$waterPic->resizeImage($waterPicWidth/2,$waterPicHeight/2,Imagick::FILTER_HAMMING,1.0);
$src1 = new Imagick('1.pdf'); $src1Width = $src1->getImageWidth(); $src1Height = $src1->getImageHeight(); $src1->resetIterator();/* imagick加载完pdf文件后,迭代器指向了最后一页;这个函数是重置了迭代器,指向第一页 */ $src1->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT); $src1->setImageArtifact('compose:args', "1,0,-0.5,0.5"); $src1->compositeImage($waterPic, Imagick::COMPOSITE_OVER, $src1Width/8, $src1Height/6); /* 设置logo的位置 */ //$combined = $src1->appendImages(true); /* 这个函数是将所有的pdf页合并为一页 */ $src1->writeImages('1.pdf',true);/* 这个函数第二个参数为true的时候是将所有图片输出为一个文件;为false的时候会生成多个独立的文件 */ $src1->clear(); $src1->destroy(); $waterPic->clear(); $waterPic->destroy();
相关文章推荐
- error C2628: “testPPG”后面接“void”是非法的 解决办法
- PHP-2-使用-测试PHP连接PostgreSQL
- tp 多条件查询 及 多表left join查询
- MyEclipse+phpEclipse+xampp的安装与配置,万里长征第一步!
- 如何在PHP中使用正则表达式进行查找替换
- PHP底层的运行机制与原理
- PHP 快速排序法
- 【资料整理】cisco [stp]
- Magento使用phpexcel导出 商品订单 /订单条目表sales_flat_order_item
- php self
- php中文匹配
- phpcms v9 常用调用标签(全)
- php使用for语句输出三角形的方法
- ZH奶酪:PHP安装扩展imagick
- yii2如何优化URL的路径
- yii2文件上传
- Yii2中的Ajax,异步更新表单
- PHP中会话处理函数的逻辑流程
- [php] Thinkphp 联表查询
- Yii 添加自己的搜索条件