在一张图片上,打印8*10的数字矩阵,实现如下:
//格子的尺寸
$grid_font_size = 18; //字体大小
$grid_font_color = "#000"; //字体颜色
$grid_width = 36; //格子的宽度
$grid_height = 24; //格子的高度
$grid_origin_x = 15; //左上角的数字的起始横坐标
$grid_origin_y = 98; //左上角的数字的起始纵坐标
#原图
$image = new Imagick('background.jpg');
#写入密保卡数据
$tmp_grid_origin_x = $grid_origin_x;
$tmp_grid_origin_y = $grid_origin_y;
foreach ($pData as $k => $v){
foreach ($v as $k_grid_data => $v_grid_data){
$tmp_grid_origin_x += $grid_width;
$draw = new ImagickDraw();
$draw->setFillColor($grid_font_color);
$draw->setFontSize($grid_font_size);
$draw->annotation($tmp_grid_origin_x, $tmp_grid_origin_y, $v_grid_data);
$image->drawImage($draw);
}
$tmp_grid_origin_x = $grid_origin_x;
$tmp_grid_origin_y += $grid_height;
}
$image->writeImage($ks_ImageSrcPath. $pSN. '.jpg');
#释放资源
$image->destroy();
$draw->destroy();
这样做的后果是,在每次循环的时候,都要实例化一个ImagickDraw,并执行drawImage方法,非常占用CPU资源。
可以从以下两点优化:
1. 不必每次都执行new操作,一个就够了;
2. 不必每次都执行drawImage方法,一次就够了。也就是说,annotation方法好像具有“附加”的意味,不用担心后来的覆盖掉之前的;
代码如下:
$draw = new ImagickDraw();
$draw->setFillColor($grid_font_color);
$draw->setFontSize($grid_font_size);
foreach ($pData as $k => $v){
foreach ($v as $k_grid_data => $v_grid_data){
$tmp_grid_origin_x += $grid_width;
$draw->annotation($tmp_grid_origin_x, $tmp_grid_origin_y, $v_grid_data);
}
$tmp_grid_origin_x = $grid_origin_x;
$tmp_grid_origin_y += $grid_height;
}
$image->drawImage($draw);
--------------------
2009-9-1 更新
--------------------
换种思路!
把8*10的数字矩阵看做“由80个数字、每10个换一行、每2个有一定间距”的字符串,哈!就可以从“调用80次annotation方法”减少到“调用1次”。
只是,我们不得不重新修改背景图的尺寸、“该字符串”在背景图的起始坐标等。
示例代码如下:
$numX = 0;
$str = '';
$tData = explode(",", $pData);
foreach ($tData as $d) {
if (($numX++)%10 == 0) {
$str .= "\n\n";
}
$str .= $d . " ";
}
$draw->setFillColor($grid_font_color);
$draw->setFontSize($grid_font_size);
$draw->annotation($grid_origin_x, $grid_origin_y, $str);
$image->drawImage($draw);
分享到:
相关推荐
PHP Imagick扩展是PHP语言中用于处理图像的强大工具,它提供了对ImageMagick库的接口,使得开发者能够执行复杂的图像操作,如图像的读取、写入、转换、编辑以及滤镜应用等。在PHP 5.3这个版本中,Imagick扩展扮演着...
**PHP Imagick库详解** PHP Imagick库是PHP的一个扩展,它提供了对ImageMagick库的强大接口,使得在PHP环境中进行复杂的图像处理变得轻而易举。ImageMagick是一款跨平台的开源图像处理软件,而PHP Imagick扩展则是...
在PHP的开发过程中,为了处理图像、进行各种图像操作,如裁剪、旋转、合成等,开发者常常会借助于第三方库。ImageMagick是一个强大的开源跨平台图像处理库,它支持多种图像格式,并提供了丰富的API供程序调用。而PHP...
PHP Imagick扩展是PHP中用于处理图像的重要工具,它提供了对ImageMagick库的接口,使PHP程序员能够执行复杂的图像操作。ImageMagick是一个强大的跨平台图像处理库,而PHP Imagick扩展则使得在Web环境中使用这些功能...
标题中的"php 5.2.6 php_imagick.dll"提到了两个关键点:PHP版本5.2.6和php_imagick.dll。这涉及到PHP编程语言的一个特定扩展,即ImageMagick扩展,它允许PHP与ImageMagick图像处理库进行交互。 PHP是一种广泛使用...
PHP Imagick是一款强大的图像处理库,它是PHP与ImageMagick库交互的接口。ImageMagick本身是一个开源的跨平台图像处理软件,能够读取、转换和写入多种图像格式。而PHP Imagick扩展则将这些功能引入到PHP中,为开发者...
总结,PHP Imagick扩展为PHP开发人员提供了强大的图像处理能力,结合ImageMagick库,可以实现丰富的图像操作。在Windows环境下,尤其是对于PHP 7.2 x64 NTS版本,正确安装和配置Imagick扩展,能够极大提升开发效率,...
PHP Imagick是PHP中用于图像处理的一个强大库,它提供了对Adobe ImageMagick库的接口,使开发者能够执行高级的图像操作,如转换、编辑和合成图像。在64位系统上,PHP Imagick能够充分利用系统资源,处理大型图像时...
PHP Imagick是一个强大的图像处理库,它基于ImageMagick,提供了在PHP中操作图像的功能。这个扩展允许开发人员执行复杂的图像处理任务,包括但不限于转换、编辑和合成图像。在本篇文章中,我们将深入探讨如何在PHP ...
【有文档,有两个安装软件等】php中的imagick扩展,主要实现对图片的操作与gd库都是对图片的操作的扩展,我当时用imagick的时候主要是想将格式为pdf的文件通过程序来转化成图片形式,经过一段时间的研究和探索最终...
标题 "imagick windows dll php" 指涉的是在Windows环境下使用PHP集成ImageMagick库的一个过程。ImageMagick是一个强大的开源图像处理工具,而PHP的Imagick扩展则允许我们在PHP代码中调用ImageMagick的功能,进行...
`php_imagick_st-Q8.dll`是这个扩展的动态链接库文件,用于Windows环境下运行PHP时支持`php_imagick`扩展。"Q8"表示该版本的ImageMagick使用了8位量子深度。量子深度是ImageMagick中用来衡量颜色精度的参数,8位意味...
PHP Imagick扩展是用于在PHP环境中处理图像的强大的工具,它提供了对ImageMagick库的接口。ImageMagick是一个开源的跨平台图像处理库,能够读取、转换和写入多种图像格式。PHP Imagick扩展使得PHP开发者能够利用...
Imagick是基于ImageMagick库的一个PHP接口,提供了丰富的图像处理功能,如裁剪、旋转、调整大小、添加文字、水印以及各种复杂的图像操作。本文将深入探讨PHP Imagick的核心概念、安装配置以及实际应用。 首先,`...
Imagick是PHP的一个扩展库,它提供了强大的图像处理功能,可以进行图像的创建、编辑和转换。本文将详细讲解如何在Windows操作系统上,搭配Apache web服务器和PHP5.2.x版本来安装和配置Imagick。 首先,我们需要下载...
PHP Imagick是一个强大的图像处理库,它基于ImageMagick,提供了在PHP中操作图像的各种高级功能。这个压缩包"php_imagick-3.4.4rc2-7.2-nts-vc15-x64.zip"是为PHP 7.2版本构建的,非线程安全(NTS)版本,采用Visual...
PHP Imagick是一个强大的图像处理扩展,它基于Imagemagick库,提供了超过120种不同的命令行工具和函数,用于创建、编辑和合成图像。标题"php_imagick-3.4.3-5.6-ts-vc11-x64"表明这是适用于PHP 5.6版本的 Imagick...
2. **安装PHP5.4**:访问PHP官方网站,选择对应操作系统的PHP5.4版本下载,完成安装后将PHP配置文件`php.ini`加入到Apache的配置文件`httpd.conf`中。 3. **安装ImageMagick**:前往ImageMagick官方网站获取最新...
标题中的"php_imagick-3.4.4-7.3-nts-vc15-x64.zip"表明这是一个PHP扩展包,用于处理图像操作,具体是PHP的Imagick扩展,版本为3.4.4,适配PHP 7.3版本,是非线程安全(NTS)版本,采用Visual C++ 15(即Visual ...
Imagick是PHP的一个扩展库,它提供了对ImageMagick图像处理库的接口,使得PHP能够执行复杂的图像操作,如图像缩放、旋转、裁剪、颜色调整以及各种特效的添加。 首先,了解`x64`和`vc14`这两个关键词。`x64`指的是64...