A-A+

用PHP把TXT转换为JPG

2008年12月19日 PHP 暂无评论 阅读 1 次

  朋友说他的老式MP4不能看小说,但是能浏览图片,想把小说转换为图片在MP4上观看。PHP这样的超级语言最适于完成这样的任务了--不需要包装、快速实现。

  完成这个功能的PHP程序非常简单,就是建立一块空白的画布,把小说的文字写一页在布上,然后把图片保存为文件,再写下一页,直到小说写完。

  建立画布的语句是$im=imagecreate(320, 240);建立一个320*240的画布,也可以通过imagecreatefromjpeg等函数建立有背景图片的底画。

 写字的语句是imagettftext($im, 12, 0, 0, ($line+1)*24-6, $color, $fnt, $s);根据行间距计算位置输出文字。# U/ j# n6 R" v4 N- v* C% v9 6 ~ k: U3 c# u% m8 @6 K

  特别注意的是imagettftext函数的文字中的汉字需要使用UTF-8编码,如何把GB转换为UTF-8我不知道,如果你有好办法请一定教教我。我的办法是用PHP写个简单脚本把所有的汉字输出到一个文本文件中,汉字之间用一个|分隔,命名为gbk.txt,在WINDOWS XP里面用记事本打开,另存为utf-8.txt,编码选为UTF-8即可。需要转换的时候利用这两个文件作为字典进行翻译。

完整程序如下:

< ?php

//指定文件名★可以修改1/2

 $ifn='红楼梦.txt';

//读出两个编码的字符集合文本 

$gb=file("gbk.txt");

$gb=explode("|",$gb[0]);
$utf=file("utf-8.txt");

$utf=explode("|",$utf[0]); 

//为了方便查询,把$gb数组的 key 与 values 交换;
$gb=array_flip($gb); 

//--------全局变量$utf,$gb供函数gb2utf8使用

//设定字体★可以修改2/2

 $fnt="c:/windows/fonts/simsun.ttc";
//打开文本文件

 $str=file_get_contents($ifn);

 //循环输出

$page=1;

while($str){

$im=imagecreate(320, 240);

$color=imagecolorallocate($im, 0,0,0);

$color=imagecolorallocate($im, 255,255,255);

$line=0;

 while ($str && $line<=9){

   $s='';
   $len=0;

   while($str && $len<=38){
   $c=substr($str,0,1);
   $str=substr($str,1);
   if (ord($c)==10){$len=99;}

   else{
    if (ord($c)!=13) {$s.=$c;$len++;}
     if (ord($c)>=128) {
     $c=substr($str,0,1);
     $str=substr($str,1);
     $s.=$c;
     $len++;

    }

   }

   }

echo "$sn";

   $s=gbk2utf8($s);
   imagettftext($im, 12, 0, 0, ($line+1)*24-6, $color, $fnt, $s);

  $line++;
}
 $ofn=sprintf("%s%05d.jpg", $ifn, $page);
echo "========================================输出文件 $ofnn";
imagejpeg($im, $ofn);
imagedestroy($im);
$page++;
}

//编码转换函数
function gbk2utf8($string)
{
return iconv("GB2312","UTF-8","$msg");
}
function urllink($msg)
{
return iconv("GB2312","UTF-8","$msg");
}

?>

给我留言

Copyright © 浩然东方 保留所有权利.   Theme  Ality 07032740

用户登录