php中使用GD库生成图形例子

给客户做二维码防伪,他需要把二维码贴到产品上,然后下载二维码不能跟产品一一对应,所以就有了这个功能要求.

将二维码与产品的id合并成一张图,我的步骤是先把生成一张图,把产品的id放进去,然后再把二维码的图片与生成的图片合并.

说合并其实就是把二维码贴到生成的图上面,具体代码如下:

  1. $width=310; //布画宽度
  2. $height=360; //布画高度
  3. $im = imagecreate($width,$height);
  4. $img2=imagecreatefrompng("$url");//获得二维码
  5. $im_WH=getimagesize("$url");//取得二维码图片的属性
  6. $im_W=$im_WH[0];
  7. $im_H=$im_WH[1];
  8. $white = ImageColorAllocate($im, 255,255,255);//定义白色 背景色
  9. $black = ImageColorAllocate($im, 0,0,0);//定义黑色 字体颜色
  10. $rectangelcolor=ImageColorAllocate($im,150,150,150);//定义边框颜色
  11. imagerectangle($im,1,1,$width-1,$height-1,$rectangelcolor);//画边框
  12. imagettftext($im,22,0,15,330,$black,'C:WINDOWSFontsarial.ttf',"$proid");//写入产品id
  13. imagecopy($im,$img2,5,5,0,0,$im_W,$im_H);//合并两张图
  14. $images = mrand4B().time(). '.jpg';//图片新命名
  15. $path = $_SERVER['DOCUMENT_ROOT'].'/static/downloadpic/'.$images;//图片路径
  16. imagejpeg($im,$path);//生成新图放到指定的路径中
  17. imagedestroy($im);//释放内存
  18. return $images;//返回图片名,以便存入数据库

注意phpgd库默认是未开启了,我们如果没能使用gd库就需要开启,具体方法,我们需要在php.ini中把extension=php_gd2.dll 去掉前面的;就行了就行了.