php gd库图片中文字,php gd库扩展生成带中文字体的png图片

注意中文字体的话,需要首先安装字体库才行,这里以楷体字为例,来生成图片

apt-get install fonts-cwtex-kai find -name *kai*.ttf

./usr/share/fonts/truetype/cwtex/cwkai.ttf

test_gd.php文件要求是以utf8无bom格式编码的

class Test_gd {

public function __construct()

{

if(extension_loaded('gd')) {

// echo '你可以使用gd
';

/*foreach(gd_info() as $cate=>$value) {

echo "$cate: $value
";

}*/

}else {

echo '你没有安装gd扩展';

return;

}

}

/**

* 生成一个png图片,上面字体为楷体

* @param  [string] $text 中文文字

* @return [void]

*/

public function createPng($text)

{

// Set the content-type

header ( 'Content-Type: image/png' );

// Create the image

$im = imagecreatetruecolor ( 120 , 30 );

// Create some colors

$blue = imagecolorallocate ( $im , 105 , 158 , 195 );

$grey = imagecolorallocate ( $im , 128 , 128 , 128 ); //表示阴影效果

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

imagefilledrectangle ( $im , 0 , 0 , 120 , 29 , $blue );

// Replace path by your own font path

//$font = '/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf' ;

$font = '/usr/share/fonts/truetype/cwtex/cwkai.ttf';//楷体

$len = mb_strlen($text);

$posX = (imagesx($im)-20*$len) / 2 - 3*($len-1) - $len*0.5; //字间距和字留白都要去掉

// Add some shadow to the text

//imagettftext ( $im , 20 , 0 , $posX+1 , 24 , $grey , $font , $text );

// Add the text

imagettftext ( $im , 20 , 0 , $posX , 23 , $white , $font , $text );

// Using imagepng() results in clearer text compared with imagejpeg()

imagepng ( $im );

imagedestroy ( $im );

}

/**

* 降低图片质量,减小文件体积

* @return [void]

*/

public function tinyImage()

{

$sImage = '/home/www/medicine/SPH00000972/主图1.jpg';

$tImage = '/home/www/data/SPH00000972_1.jpg';

$im = imagecreatefromjpeg($sImage);

imagejpeg($im,$tImage,50); //quality setting to 50%

imagedestroy($im);

echo "complete
";

}

}

$gdTest = new Test_gd();

$text = $_GET['text'];

$gdTest->createPng($text);

?>

最终生成的图片效果如下:

05d3d98599ec34b21dd15fcf9b1f1159.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值