• 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;
    }
    //http://my.oschina.net/cart/
    generateImg ( 'http://1.popular.sinaapp.com/munv/pic.jpg', 'my.oschina.net/cart', 'PHP文字水平居中', '3个字' );
    exit ();
  • 相关阅读:
    Docker容器常用操作命令(镜像的上传、下载、导入、导出、创建、删除、修改、启动等)详解
    [20191213]toad 12下BIND_AWARE提示无效.txt
    [20191206]隐含参数_db_always_check_system_ts.txt
    [20191127]表 full Hash Value的计算.txt
    [20191127]探究等待事件的本源4.txt
    [20191126]探究等待事件的本源2.txt
    [20191125]oracel SQL parsing function qcplgte 2.txt
    [20191125]探究等待事件的本源.txt
    [20191122]oracel SQL parsing function qcplgte.txt
    [20191119]探究ipcs命令输出2.txt
  • 原文地址:https://www.cnblogs.com/jenry/p/4158027.html
Copyright © 2020-2023  润新知