php图文合成文字居中(png图片合成)

header(‘Content-type:text/html;charset=utf-8‘);
/**
 * png图文合成 by wangzhaobo
 * @param  string $pic_path   图片目录
 * @param  array $text       文字
 * @param  array $font_file  路径
 * @param  array $font_size  文字大小
 * @param  array $font_pos_y 文字距离图片高度
 * @return string             合成图片的名称
 */
function signImg($pic_path,$text,$font_file,$font_size,$font_pos_y){
    //图片信息
    list($pic_w, $pic_h, $pic_type) = getimagesize($pic_path);
    //创建图片的实例
    $pic = imagecreatefrompng($pic_path);
    imagesavealpha($pic,true);//这里很重要 意思是不要丢了图像的透明色;
    $white = imagecolorallocate($pic, 255, 255, 255);//默认的文字颜色
    $yellow = imagecolorallocate($pic, 236, 185, 7);//默认的文字颜色
    $font_color = [$white,$yellow,$white,$white];
    foreach($text as $key=>$value){
        $arr = imagettfbbox($font_size[$key],0,$font_file[$key],$text[$key]);
        $text_width = $arr[2]-$arr[0];
        imagefttext($pic, $font_size[$key], 0, ($pic_w-$text_width)/2, $font_pos_y[$key], $font_color[$key], $font_file[$key], $text[$key]);
    }
    //按照画布类型输出图片
    $pngName = time().rand(0,9).".png";//生成图片名称
    switch ($pic_type) {
        case 1://GIF

        case 2://JPG

        case 3://PNG
            // //直接输出图片
            header(‘Content-Type: image/png‘);
            imagepng($pic);

            // 保存图片路径
            // imagepng($pic,"./assets/sign/".$pngName);
            // return $pngName;
            break;
        default:
            break;
    }
    imagedestroy($pic);
}
    $pic_path = ‘./assets/images/backgroud.png‘;
    $text = [
        ‘若水电影电竞女神巡演赛成都站‘,
        ‘王若水‘,
        ‘观赛时间:2017.9.2 12:30‘,
        ‘观赛地点:万达电影地方电竞女神巡演赛(成都站)‘
    ];
    $font_file = [
        "./assets/fonts/MSYH.TTF",//粗体
        "./assets/fonts/MSYH.TTF",//粗体
        "./assets/fonts/MSYH.TTF",//细体
        "./assets/fonts/MSYH.TTF"//细体
    ];
    $font_size = [24,42,18,18];
    $font_pos_y = [298,470,600,650];
    signImg($pic_path,$text,$font_file,$font_size,$font_pos_y);
    // header("Content-type: image/png");
    // echo $a;

素材地址:链接:http://pan.baidu.com/s/1c2vUCAO 密码:3s2i

时间: 2024-08-13 21:47:30

php图文合成文字居中(png图片合成)的相关文章

php 图片添加文字水印 以及 图片合成(微信快码传播)

1.图片添加文字水印: $bigImgPath = 'backgroud.png'; $img = imagecreatefromstring(file_get_contents($bigImgPath)); $font = 'msyhl.ttc';//字体 $black = imagecolorallocate($img, 0, 0, 0);//字体颜色 RGB $fontSize = 20; //字体大小 $circleSize = 60; //旋转角度 $left = 50; //左边距

UIButton图片文字控件位置自定义(图片居右文字居左、图片居中文字居中、图片居左文字消失等)

在开发中经常会碰到需要对按钮中的图片文字位置做调整的需求.第一种方式是通过设置按钮中图片文字的偏移量.通过方法setTitleEdgeInsets和setImageEdgeInsets实现 代码如下: /*!**方式一***/ - (void)updateBtnStyle_rightImage:(UIButton *)btn { CGFloat btnImageWidth = btn.imageView.bounds.size.width; CGFloat btnLabelWidth = btn

iOS 图片水印、图片合成文字或图片实现

这个需求可能有时候会碰到,比如自己的照片加版权,打水印等 网上的方法,有不少感觉不全对,或者需求不是特全,这里我总结了3种场景下的需求: 1.本地图片合成文字 2.本地图片合成图片 3.网络图片先下载再合成图片 效果图: 这里的合成的size大小,我都是随便写的,没特意计算,大家可以按实际需求自定义. 代码部分: /** 图片合成文字 @param img <#img description#> @param logoText <#logoText description#> @r

C# 文字图片生成与背景图片合成

最近有个需求是将生成的邀请码与背景图片合成成为新的图片,查找了一些资料后又整理了一遍,查到了一个群主的帖子,虽然代码略微有点问题,地址是:https://www.cnblogs.com/stulzq/p/6137715.html,下面上修改后的代码,有两个资源图片,是自己做的,第一个是背景图片(500*600),第二个是前景图片(200*200). public ActionResult Index() { //生成邀请码图片 字符间距 带空格比较简单 //Image img = CreateI

C#简单的图片合成及防止并发的办法

/// <summary> /// 合成图 /// </summary> private string ComposeCarBrandBadImage(AnonAttachmentFilter filter) { filter.pageIndex = 1; filter.pageSize = 100; IList<AnonAttachment> attachmentList = B_Attachment.Instance.GetList(filter); int hei

WPF 下两种图片合成或加水印的方式(转载)

来源:http://www.cnblogs.com/lxblog/ 最近项目中应用多次应用了图片合成,为了今后方便特此记下. 在WPF下有两种图片合成的方式,一种还是用原来C#提供的GDI+方式,命名空间是System.Drawing 和 System.Drawing.Imaging,另一种是WPF中新添加的API,命名空间是 System.Windows.Media 和 System.Windows.Media.Imaging . 我们来做一个简单的例子,分别用上面的两种方式实现,功能是在一个

【开源java游戏框架libgdx专题】-12-开发工具-图片合成

TexturePackerGui工具: 1.工具使用: 首先看到texturepacker的界面 界面介绍: New pack:创建项目按钮,单击后输入文件名称,创建文件. Input directory:待整合图片资源目录,建议使用test me!目录中的input文件夹 Output directory:整合后图片及配置文件保存目录 Pack all:打包所有创建的文件 File name:配置文件名称 Default image format:默认图片编码格式 Default file f

关于使用TexturePackerGUI将图片合成和用Python Imaging Library将图片分解

写这片博客前,我在学习cocos2d-x,正在做一个微信打飞机的项目,为了将飞机图片资源合成为一张,使用到了TexturePackerGUI软件,在这介绍使用方法,后面是将这张合成图片分解成原来图片的方法. 合成 软件下载地址 破解完成之后就开始使用,对里面控件不熟悉的请参考这篇文章,虽然看起来复杂,但是只要把你所有需要合成的资源全部移到右边的框内就行了,如下图(蓝色的地方): 好了,把图片全部拖进去之后,就可以开始导出了,选择菜单栏中的Publish,在此之前,请在左边的DataFile中设置

android开发 两张bitmap图片合成一张图片

场景:对android4.4解码gif(解码文章见前面一篇)后的图片进行每帧处理,android4.3 解码出来的每帧都很完整,但是到android4.4版本就不完整了,每帧都是在第一帧的基础上把被改变的显示出来了,所以需要再次合成每帧 如图效果: 合成后: 代码直接看: /** * 将2张图片合成 * @param downBitmap 底部图片 * @param upBitmap 置顶的图片 * @return */ public static Bitmap compoundBitmap(B