php字符串生成图片、图片合成
function generateImg($source, $text1, $text2, $text3, $font = "./msyhbd.ttf") { $date = "" . date ( "Ymd" ) . "/"; $img = $date . md5 ( $source . $text1 . $text2 . $text3 ) . ".jpg"; if (file_exists ( "./" . $img )) { return $img; } $main = imagecreatefromjpeg ( $source ); $width = imagesx ( $main ); $height = imagesy ( $main ); $target = imagecreatetruecolor ( $width, $height ); $white = imagecolorallocate ( $target, 255, 255, 255 ); imagefill ( $target, 0, 0, $white ); imagecopyresampled ( $target, $main, 0, 0, 0, 0, $width, $height, $width, $height ); $fontSize = 18;//像素字体 $fontColor = imagecolorallocate ( $target, 255, 0, 0 );//字的RGB颜色 $fontBox = imagettfbbox($fontSize, 0, $font, $text1);//文字水平居中实质 imagettftext ( $target, $fontSize, 0, ceil(($width - $fontBox[2]) / 2), 190, $fontColor, $font, $text1 ); $fontBox = imagettfbbox($fontSize, 0, $font, $text2); imagettftext ( $target, $fontSize, 0, ceil(($width - $fontBox[2]) / 2), 370, $fontColor, $font, $text2 ); $fontBox = imagettfbbox($fontSize, 0, $font, $text3); imagettftext ( $target, $fontSize, 0, ceil(($width - $fontBox[2]) / 2), 560, $fontColor, $font, $text3 ); //imageantialias($target, true);//抗锯齿,有些PHP版本有问题,谨慎使用 imagefilledpolygon ( $target, array (10 + 0, 0 + 142, 0, 12 + 142, 20 + 0, 12 + 142), 3, $fontColor );//画三角形 imageline($target, 100, 200, 20, 142, $fontColor);//画线 imagefilledrectangle ( $target, 50, 100, 250, 150, $fontColor );//画矩形 //bof of 合成图片 $child1 = imagecreatefromjpeg ( "http://gtms01.alicdn.com/tps/i1/T1N0pxFEhaXXXxK1nM-357-88.jpg" ); imagecopymerge ( $target, $child1, 0, 400, 0, 0, imagesx ( $child1 ), imagesy ( $child1 ), 100 ); //eof of 合成图片 @mkdir ( "./" . $date ); imagejpeg ( $target, "./" . $img, 95 ); imagedestroy ( $main ); imagedestroy ( $target ); imagedestroy ( $child1 ); return $img; } generateImg ( "https://ssl.picture.qingger.com/Fi8zMItS5c_Uvm7WueZ5z_0VsDg_", "aaaaa", "PHP文字水平居中", "3个字" ); exit ();
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 微信昵称带符号,导致插入MySQL时出错的解决方案
- 下一篇: url接口拼接问题