2009年8月21日星期五

boblog最新文章签名图片

这是一个可以通过rss读取boblog最新日志并添加到图片,生成签名图片的PHP程序。可以自定义字体、颜色、大小、字符的位置等等。

本程序使用的图片格式为PNG,其他图片格式我不知道可不可以用。

其实,只要将这个程序稍加修改,就可以支持任何一个有rss功能的程序最新文章的签名图片的生成。

既然是签名图片,我就来介绍一下使用方法。

先下载sign.rar(看附件),解压后有一个sign文件夹(可以随意改名,本文中以sign为例),修改其中的index.php。

必须修改的部分:

1、第三行:

PHP代码

        
  1. $url = 'http://vivid.name/feed.php';



把其中的zsky.org改成你网站的blog所在目录。

2、第26——35行:

PHP代码

        
  1. imagettftext($image, 14, 0, 40, 30, $color, './jianzhi.ttf', '蓝天下最新日志' );

  2.     
  3. imagettftext($image, 11, 0, 25, 55, $color3, './jianzhi.ttf',$arr[0]);

  4.     
  5. imagettftext($image, 11, 0, 25, 75, $color3, './jianzhi.ttf', $arr[1]);

  6.     
  7. imagettftext($image, 11, 0, 25, 95, $color3, './jianzhi.ttf',$arr[2]);

  8.     
  9. imagettftext($image, 11, 0, 25, 115, $color3, './jianzhi.ttf',$arr[3]);

  10.     
  11. imagettftext($image, 11, 0, 25, 135, $color3, './jianzhi.ttf',$arr[4] );

  12.     
  13. imagettftext($image, 8, 0, 10, 150, $color, './jianzhi.ttf', '最新文章内容:');

  14.     
  15. imagettftext($image, 8, 0, 10, 140, $color, './jianzhi.ttf', $abc);

  16.     
  17. imagettftext($image, 9, 0, 120, 188, $color2, './jianzhi.ttf', '本图为动态解析RSS生成,最后更新时间为:'.date('jS M, Y - h:i:s')); //若生成的图片中时间不对,多半是时区问题,删除掉“-h:i:s”即可

  18.     
  19. imagettftext($image, 9, 0, 330, 168, $color2, './jianzhi.ttf', '蓝天下: http://vivid.name/' );



把中文部分如“蓝天下最新日志”和“蓝天下:http://skyzf.com”改成你自己的文字。

3、第40行:

PHP代码

        
  1. file_put_contents('./cache.png',file_get_contents('http://my.zsky.org/sign/?do=update'));



http://my.zsky.org/sign/修改成你自己的目录,如http://yourname.com/qianming/,?do=update不要修改。

这样就修改好了,把sign文件夹上传到你的空间根目录即可。

使用方法:

1、上传完毕后,访问你的目录/?do=update,如http://my.zsky.org/sign/?do=update。如果正常的话,会出现生成好的图片。

2、再访问你的目录,如http://my.zsky.org/sign/,页面应该为空白。

3、你的图片应该已经生成成功,名称为cache.png,如http://my.zsky.org/sign/cache.png,现在你可以随便展示这张图片了。注意,博客每更新一次,都要重复以上2步。

如果进行第1、2步时有报错,那很有可能是你设置错了,仔细检查一下哪里错了。

如果你担心这个签名图片很耗费你的流量,可以租用我的流量。价格:20元/3个月(价格以本日志中的为准,蓝天下拥有最终解释权)。

下面我就对这个程序可以自定义的部分作一个详细解析。

可自定义部分主要是第22——35行。

PHP代码

        
  1. $image = imagecreatefrompng("bg.png"); //图片的路径

  2.     
  3. $color = imagecolorallocate($image,0,0,0); //输出的字体颜色

  4.     
  5. $color2 = imagecolorallocate($image,210,105,30); //输出的字体颜色

  6.     
  7. $color3 = imagecolorallocate($image,160,32,240); //输出的字体颜色

  8.     
  9. imagettftext($image, 14, 0, 40, 30, $color, './jianzhi.ttf', '蓝天下最新日志' );

  10.     
  11. imagettftext($image, 11, 0, 25, 55, $color3, './jianzhi.ttf',$arr[0]);

  12.     
  13. imagettftext($image, 11, 0, 25, 75, $color3, './jianzhi.ttf', $arr[1]);

  14.     
  15. imagettftext($image, 11, 0, 25, 95, $color3, './jianzhi.ttf',$arr[2]);

  16.     
  17. imagettftext($image, 11, 0, 25, 115, $color3, './jianzhi.ttf',$arr[3]);

  18.     
  19. imagettftext($image, 11, 0, 25, 135, $color3, './jianzhi.ttf',$arr[4] );

  20.     
  21. imagettftext($image, 8, 0, 10, 150, $color, './jianzhi.ttf', '最新文章内容:');

  22.     
  23. imagettftext($image, 8, 0, 10, 140, $color, './jianzhi.ttf', $abc);

  24.     
  25. imagettftext($image, 9, 0, 120, 188, $color2, './jianzhi.ttf', '本图为动态解析RSS生成,最后更新时间为:'.date('jS M, Y - h:i:s')); //若生成的图片中时间不对,多半是时区问题,删除掉“-h:i:s”即可

  26.     
  27. imagettftext($image, 9, 0, 330, 168, $color2, './jianzhi.ttf', '蓝天下: http://vivid.name/' );



(//***代表注释,程序并不运行注释内容,是写给你们看的)

以上第1行(即文件中第22行,下面均以上面的代码左方显示行数为准,请自己对照文件中的行数)中,定义的是底板图片的名字。默认是bg.png,你可以自己找一张图片,裁减一下,和自带的图片尺寸差不多就行,不裁减也可以,不过文字显示位置就要你手动改了,挺麻烦,但是很简单的!你也可以不用bg.png,可以用my.png,但你就要把第1行的bg.png改成my.png了。

第2、3、4行定义的是文字颜色。有$color,$color2,$color3,代表不同的颜色,看5——14行,各调用了这三种颜色。三个数字就代表RGB颜色。可以自己修改配色。还可以自己增加颜色,如$mycolor,$color4,

5——14行重点解释。括号里的内容,$image代表你的图片,后面的四个数字,第一个代表文字大小,第二个是偏转角度,第三个是离左边的距离,第四个是离上边的距离。三,四相当于坐标。$color*就是调用刚才定义的颜色,'./**.ttf'是字体,你可以改成自己的字体,然后把上面的字体换成你自己的字体文件名如my.ttf。可以调用多个字体哦!最后是生成文字的内容。

另外还有第41行,'./cache.png'代表生成的签名图片的名字,你可以把cache改成任意名字,如my。

最后,记的把目录权限设为777哦!否则程序会出错!

刚才看见小不点那个脑残把/?do=update中的update竟然也改掉了,真是无良!如果你也想自定义do的动作,可以去源代码最前面那一块找“update”,改成你自己的文字(英文,如gengxin) 即可。

程序下载:

sign.rar

程序作者:风吟