ImageMagick 函数说明和使用举例,作者:打打 QQ:1069576404

首先,加载php_imagick.dll扩展模块,也就是在网上找到php_imagick.dll文件,把它放在php.ini同级的目录中,然后,在php.ini里加上extension=php_imagick.dll,重启服务器就可以了。

函数说明:

$images = new Imagick("ALIM2382.JPG");//新建 Imagick 类
$images->getImageHeight();//获得图片高
$images->getImageWidth();//获得图片宽
$images->thumbnailImage(100,100);改变图片的大小
$images->writeImages("ALIM2382.JPG",true);//写一个图像或图像序列
$images->writeImage("ALIM2382.JPG");//写一个图像
$images->destroy();//销毁图片
$images->borderImage(new ImagickPixel("red"), 3, 3);//设置图片边框红色,边框为3
$images->modulateImage(50, 0, 0); //控制亮度、饱和度、色调
$images->compositeImage($im, imagick::COMPOSITE_OVER, 10, 20);//将两个图像符合到一起。
$images->setImageFormat('jpeg');//设置图片格式
$images->getImageResolution()// 返回图像分辨率,X和Y轴信息
$images->getImageUnits()//     返回图像分辨率单位
$images->resampleImage()// 以期望的分辨率重新采样
$images->setImageResolution()//       设置分辨率
$images->setImageUnits()//   设置分辨率单位
echo $images;//显示
其他请参考 http://cn.php.net/imagick 网站

实例演示:

$img='ALIM2382.JPG';
//生成图片
$images=doimage_middle($img);
//显示图片
echo $images;
//销毁
$images->destroy();

//生成图片效果请参考‘我的相册’。

//返回文件的扩展名
function extension($filename)
{
    $img_ext="";
    $path_parts = pathinfo($filename);
    $img_ext=$path_parts["extension"];
    return $img_ext;
}
//生成图片
function doimage_middle($imgname)
{
//获得文件扩展名
$img_ext=extension($imgname); 
    //新建 Imagick 类
$images = new Imagick($imgname);
    $Height = $images->getImageHeight();
$Width = $images->getImageWidth();
//获得宽高的比率
    $ratio = Resize($Height,$Width);
    $new_width = $Width*$ratio;
    $new_height = $Height*$ratio;
//改变图片的大小为:
$images->thumbnailImage($new_width,$new_height);
//写一个图像或图像序列
$images->writeImage($imgname.'_middle.'.$img_ext);
return $images;
}

//获得 图片宽高的比率
function Resize( $height,$width, $maxwidth=400, $maxheight=400){
$RESIZEWIDTH=$RESIZEHEIGHT=false;
if(($maxwidth && $width > $maxwidth) || ($maxheight && $height > $maxheight)){
   if($maxwidth && $width > $maxwidth){
   $widthratio = $maxwidth/$width;
   $RESIZEWIDTH=true;
   }
   if($maxheight && $height > $maxheight){
   $heightratio = $maxheight/$height;
   $RESIZEHEIGHT=true;
   }
   if($RESIZEWIDTH && $RESIZEHEIGHT){
    if($widthratio < $heightratio){
     $ratio = $widthratio;
    }else{
     $ratio = $heightratio;
    }
   }elseif($RESIZEWIDTH){
    $ratio = $widthratio;
   }elseif($RESIZEHEIGHT){
    $ratio = $heightratio;
   }

}else{
   $ratio=1;
}
return $ratio;
}

本文转自博客园知识天地的博客,原文链接:ImageMagick 图片处理 函数说明和使用举例,如需转载请自行联系原博主。

ImageMagick 图片处理 函数说明和使用举例相关推荐

  1. python enumerate函数_关于python中enumerate和zip函数的用法及举例

    关于python中enumerate和zip函数的用法及举例 关于enumerate函数: enumerate函数可以同时返回列表或元组等可迭代对象的下标和内容,但实际上,enumerate函数实际返 ...

  2. php如何随机显示图片,php中随机显示图片的函数代码_php

    /********************************************** * Filename : img.php * Author : freemouse http://www ...

  3. php图片翻转函数,PHP图片处理之图片旋转和图片翻转实例

    图片的旋转和翻转也是Web项目中比较常见的功能,但这是两个不同的概念,图片的旋转是按特定的角度来转动图片,而图片的翻转则是将图片的内容按特定的方向对调.图片翻转需要自己编写函数来实现,而旋转图片则可以 ...

  4. sync、fsync、fdatasync、fflush函数区别和使用举例

    sync.fsync.fdatasync.fflush函数区别和使用举例 Linux/unix在内核中设有缓冲区.高速缓冲或页面高速缓冲,大多数磁盘I/O(block device)都通过缓冲进行,当 ...

  5. SQL语句--CASE函数写法的简单举例,及应用

    SQL语句–CASE函数写法的简单举例,及应用 ---case函数的基本结构:case when...then...else... ----可以写也可以不写,按实际需求end [举个栗子_1] eg1 ...

  6. 学习|OpenCV图片修复函数inpaint

    学更好的别人, 做更好的自己. --<微卡智享> 本文长度为2020字,预计阅读6分钟 OpenCV图片修复 最近重新学习OpenCV的基础,偶然间发现了npaint的函数,于是就自己做了 ...

  7. canvas学习day3——加载图片loadImage函数,理解回调函数

    回调函数 回调函数理解 你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货.在这个例子里,你的电话号码就 ...

  8. php正则网络图片格式,php中通过正则表达式下载内容中的远程图片的函数代码

    这段程序其实是属于"小偷程序"的重要部分. 这一段程序只是下载远程图片的那一段而已,程序写的比较简单,大多部分都做了注释. if (preg_match_all("/ht ...

  9. php如何缩小图片,PHP图片缩小函数一例

    /** * 缩小图片函数 * 删除了原始图片保留了操作后的图片 * @param string $fileName * @return void */ private function createS ...

最新文章

  1. Eclipse 之 EasyExplore 插件
  2. 从ramdisk根文件系统启动Linux
  3. 【听课笔记】国立交通大学《如何成功投稿国际科学期刊》 投稿准备+审稿流程剖析...
  4. Innodb隔离级别的实现原理
  5. uos命令_ubuntu、debian、uos的命令
  6. 【Flink】Flink调优指南
  7. Maven 项目中配置私服
  8. Mac下Intellij IDea发布JavaWeb项目 详解一 (1、新建JavaEE Project并进行相应设置 2、配置tomcat)...
  9. unity安装到一半失败
  10. 数字化转型的衡量指标
  11. Android中使用Toast弹出信息提示时的用户体验优化
  12. PE系统优盘制作教程
  13. addon游戏_addon_game_mode游戏基本情况设置
  14. 为了追学姐,用python把她的照片做成了游戏,她看了...
  15. WordPress二次元Kratos-pjax主题模板源码+
  16. 计算机二级Java考试笔记
  17. OpenHarmony ≠ HarmonyOS
  18. matlab中离散信号模型
  19. 101条经典幽默的计算机编程名言
  20. 操作系统 | 银行家算法及代码实现

热门文章

  1. 三种方法实现二分查找
  2. 北京豪宅市场调查:多项目集中放量使选择面加大
  3. Python并行编程(七):多进程的基本使用和与多线程的差异
  4. 使用 openssl 生成证书
  5. DAX/PowerBI系列 - 参数表(Parameter Table) - 大客户分析(Top N)
  6. Go语言跨平台预编译
  7. JSLite 的目标:缩小体积,做到 jQuery-free
  8. .net伪静态传多个参数
  9. 二进制 十进制 十六进制
  10. 微软Asp.Net架构与项目团队管理建设模型分析