首页 > 语言 > 关键词  > php最新资讯  > 正文

PHP脚本的8个技巧(4)动态创建图象

2008-10-30 13:52 · 稿源:
在安装了某些第三方函数库之后,结合你的图形处理技能,你就可以用PHP创建和处理图像了。事实上,你也不需要太高的几何学知识。我在中学的时候这门功课总是不及格,现在不也照样会用PHP创建图像!在使用基本的图像创建函数之前,你需要安装GD库。如果要用到和JPEG相关的图像创建函数你还需要安装jpeg-6b。在图像中使用Type 1字体的时候还必须安装t1lib。

在这里,你还需要对你的系统进行进一步地调整。首先,你必须安装t1lib以提供图象处理支持,接下来要安装jpeg-6b。第三步是安装GD函数库。你得按顺序做完这三件工作,原因是你需要编译GD库才能使用jpeg-6b库,如果jpeg-6b步首先安装,编译就会出错,到那时候你就是忙的团团转也没办法了。

在安装完以上的三个函数库之后,你还要重新配置PHP。这可是你在安装PHP的DSO版本时的拿手好戏噢!接着执行make clean,命令,然后在当前配置指示符里加入以下代码:

以下为引用的内容:

--with-gd=[/path/to/gd]
--with-jpeg-dir=[/path/to/jpeg-6b]
--with-t1lib=[/path/to/t1lib]


最后顺序执行make、make install命令完成配制任务。重新启动 Apache,运行phpinfo()函数检查性新功能是否正常运行。

和你安装的GD库有关,你可能或者不可能具有创建GIF或者PNG图像的能力。关键在于:如果你已经安装了gd-1.6或者早期版本,那么你可以处理GIF但不能处理PNG。如果安装了gd-1.6或者以后版本,你可以处理PNG但又不能处理GIF。

创建一个简单的图像需要采用好几个函数。我会按步骤带你学习这一过程:

输出一个文件头,其中包含了你所创建图像的MIME类型,在我们的例子中就是PNG。

<? header ("Content-type: image/png");

使用ImageCreate()创建一个变量存放空白图像。该函数需要以像素为单位的图像大小。格式是ImageCreate(x_size, y_size),对250-X-250像素的图像而言,用法如下:

$newImg = ImageCreate(250,250);

因为你的图像现在还是空白,所以你还要设法用某些色彩填满它,但是,首先你需要按照颜色的RGB值为每种颜色分配名字,这要用到ImageColorAllocate()函数。函数的格式是ImageColorAllocate([image], [red], [green], [blue])。如果是天蓝色,具体代码如下:

以下为引用的内容:

$skyblue = ImageColorAllocate($newImg,136,193,255);


接着,你需要调用ImageFill()函数为图像填充以上的颜色。ImageFill(),函数有好几个版本,比如ImageFillRectangle(), ImageFillPolygon()等等。为简单起见,我们就采用ImageFill()函数进行颜色填充,格式如下:

以下为引用的内容:

ImageFill([image], [start x point], [start y point], [color])
ImageFill($newImg,0,0,$skyblue);



最后,你创建了图像并破坏图像流以释放内存:

以下为引用的内容:

ImagePNG($newImg);
ImageDestroy($newImg); ?>


具体的代码看起来很像下面的样子:

以下为引用的内容:

<? header ("Content-type: image/png");
$newImg = ImageCreate(250,250);
$skyblue = ImageColorAllocate($newImg,136,193,255);
ImageFill($newImg,0,0,$skyblue);
ImagePNG($newImg);
ImageDestroy($newImg);
?>


如果你调用这个脚本skyblue.php 并用自己的浏览器访问它,你就会看到一个250-X-250像素大的蓝色PNG图像。

你还可以用图像创建函数处理图像,比如创建大型图像的缩微图等。

假设你打算为某个图片制作一个35-X-35像素大小的缩微图。你要做到就是创建一个新的35 X 35 像素大小的图像;制造出一个包含其原始图像内容的图像流;然后改变原始图像的大小,并把它放到新的空白图像中去。

用来达到以上目的的关键函数就是ImageCopyResized(),,该函数的格式如下所示:ImageCopyResized([new image handle],[original image handle],[new image X], [new Image Y], [original image X], [original image Y], [new image X], [new image Y], [original image X], [original image Y]);

以下是代码注释。

以下为引用的内容:

<? /* send a header so that the browser knows the content-type of the file */
header("Content-type: image/png");

/* set up variables to hold the height and width of your new image */
$newWidth = 35;
$newHeight = 35;

/* create a blank, new image of the given new height and width */
$newImg = ImageCreate($newWidth,$newHeight);

/* get the data from the original, large image */
$origImg = ImageCreateFromPNG("test.png");

/* copy the resized image. Use the ImageSX() and ImageSY functions to get the x and y sizes of the orginal image. */
ImageCopyResized($newImg,$origImg,0,0,0,0,$newWidth,$newHeight,ImageSX($origImg),ImageSY($origImg));

/* create final image and free up the memory */
ImagePNG($newImg);
ImageDestroy($newImg); ?>


如果你调用了以上脚本resized.php 并用自己的浏览器访问它,你应该能看到一个35-X-35像素大小的缩微PNG图。

举报

  • 相关推荐
  • 梦回iPhone 7时代!iPhone 17 Air电池曝光:2800mAh

    快科技7月19日消息,iPhone 17 Air电池容量仅2800mAh,比2016年iPhone 7 Plus的2900mAh还小,主要因机身厚度仅5.5mm成为苹果最薄机型。为弥补续航,苹果配备自研C1基带芯片降低功耗,并计划推出MagSafe外接电池配件。配置方面采用120Hz直屏、A19处理器、12GB内存、4800万单摄,预装iOS 26。值得注意的是,超薄设计使其仅支持eSIM技术,取消了物理SIM卡槽。

  • 网友住酒店光脚洗澡感染HPV 医生回应:需注意防护

    ​近日,“酒店光脚洗澡可能感染HPV”这一话题在网络上迅速发酵,引发了公众对公共场所卫生安全问题的广泛关注和热烈讨论。据媒体报道以及医学专家分析,在酒店等公共浴室光脚洗澡,确实存在感染跖疣病毒的风险,而该病毒正是一种低危型HPV病毒。 跖疣,这一由人乳头瘤病毒(HPV)引发的足部良性增生物,其感染多发生在温暖潮湿的环境中。医学专家指出,当足部皮

  • 苹果iPhone 17 Pro系列四配色渲染图出炉:史上首款橙色登场

    据majinbuofficial爆料,结合配件厂商和知情人士的消息,确认今年iPhone 17 Pro系列降提供四款配色可选,与前代保持一致。 具体配色是黑色、深蓝色、银色、橙色,其中橙色是iPhone Pro系列有史以来第一次使用。 爆料对四款配色的描述如下: 黑色:经典且优雅,类似此前型号中的黑色钛金属,但采用磨砂处理,增加优雅感并减少指纹可见度。 深蓝色:一种深到几乎夜幕般的色�

  • 芯朋苏州办公室设计|Chipown20周年之礼|时象设计

    芯朋微电子(Chipown)在苏州设立新办公区,将古典园林美学与现代科技完美融合。这家专注功率半导体研发的高科技企业创立于2005年,总部位于无锡。新办公空间以"传统赋能创新"为理念,通过开放式设计、绿色生态与现代工艺的共生,打造出兼具人文性与自然性的工作环境。电梯间采用材质碰撞设计,会议室以苏州园林元素点缀,培训室配备灵活隔断,处处体现江南风�

  • 外观大改!iPhone 17系列4款机型全配色曝光

    据分析机构预测,iPhone 17系列将于本月开始试生产,8月份开始量产,并于9月份正式发布。 今年苹果会发布iPhone 17、iPhone 17 Air、iPhone 17 Pro、iPhone 17 Pro Max四款机型。 科技媒体Macworld最新报道称,在苹果内部文件中看到了iPhone 17全系机型的配色,带来了以往从没用过的新配色。

  • AI日报:xAI 震撼发布Grok4;微软开源全新Phi-4-mini版本;上海累计82款大模型通过备案

    AI日报栏目聚焦人工智能领域最新动态:1)xAI发布旗舰模型Grok4,在数学推理和代码生成表现突出,同时推出开发者专用Grok4Code;2)微软开源Phi-4-mini模型,推理效率提升10倍,适合边缘设备;3)上海82款大模型完成备案,垂直领域应用取得突破;4)Hugging Face推出开源桌面机器人Reachy Mini,支持Python编程;5)Perplexity发布AI浏览器Comet挑战Chrome;6)OpenAI将首次发布开放权重模型,打破闭源惯例;7)谷歌医疗AI模型MedGemma系列上新,单个GPU即可运行;8)OpenAI以约65亿美元收购AI硬件公司io Products,正式进军硬件市场。

  • 小米YU7支持五种导航地址流转方式 iPhone发张截图就可以

    导航作为车主高频刚需功能,小米汽车深入挖掘不同场景下,打造了五种便捷的地址流转方案。 无论是小米手机还是苹果手机用户,都能轻松将地址信息发送至车机系统,实现无缝导航体验。 针对小米手机用户,在小红书、大众点评、微博等含有地址信息的页面,只需长按电源键唤醒小爱同学,说出把这个地址发到车上”,即可将地址发送至车机。

  • 折叠屏iPhone首发!苹果马上启动iOS 27开发工作

    苹果很快就会启动iOS 27的开发工作,该公司将优先为折叠屏iPhone打造专属软件功能。 按照计划,iOS 27会在明年上半年的WWDC开发者大会上正式亮相,明年9月份推出正式版系统,由折叠屏iPhone首发搭载。 尽管Mark Gurman并未爆料iOS 27会有哪些折叠屏定制功能,但考虑到折叠屏的屏幕形态和定位,iOS 27首先要做的是分屏功能,业界期待苹果利用折叠屏的大屏优势实现更高效的多任务

  • 11999元iPhone 16 Pro Max只要3800元 女子差点买了个模型机

    原价11999元的iPhone 16 Pro Max 512GB只要3800元,面对如此诱人的低价,你会心动吗? 据平安拉萨消息,事发7月12日中午,拉萨特警支队一名休假民警在公德林天街附近,成功拦截一起用手机模型冒充真机的诈骗案件。 当日,该民警发现一名男子行为异常,频繁拦截路人兜售手机。观察中发现,男子拦住两位女子后,从外套口袋掏出一部苹果iPhone 16 Pro Max真机,熟练操作展示功能。

  • 最薄苹果手机!iPhone 17 Air将提供4款配色

    博主Majin Bu爆料称,iPhone 17 Air将提供4种配色,分别是白色、黑色、浅金色和浅蓝色。 该博主称,浅蓝色与最新款MacBook Air的天蓝色(Sky Blue)版本相近,因此苹果可能会将天蓝色”这一名称沿用到iPhone 17 Air上。 作为iPhone 17系列新成员,iPhone 17 Air将取代Plus,该机主打超薄设计,其厚度只有5.5mm,是苹果史上最薄iPhone,重量只有146g,仅仅比iPhone 6s重了3g。 核心配置上,该机采�