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

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

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

    1.图片添加文字水印: $bigImgPath = 'backgroud.png'; $img = imagecreatefromstring(file_get_contents($bigImgPat ...

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

    在开发中经常会碰到需要对按钮中的图片文字位置做调整的需求.第一种方式是通过设置按钮中图片文字的偏移量.通过方法setTitleEdgeInsets和setImageEdgeInsets实现 代码如下: ...

  3. css文字居中、图片居中、div居中解决方案

    一.文字居中 若文字只有一行 <!--html代码--> <div class="box"> <p class="text"> ...

  4. android 文字图片合成

    引用:http://blog.csdn.net/cq361106306/article/details/8142526 两种方法: 1.直接在图片上写文字 String str = "PIC ...

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

    这个需求可能有时候会碰到,比如自己的照片加版权,打水印等 网上的方法,有不少感觉不全对,或者需求不是特全,这里我总结了3种场景下的需求: 1.本地图片合成文字 2.本地图片合成图片 3.网络图片先下载 ...

  6. php 图片合成时文字颜色丢失

    最近在做图片合成的时候无意间发现文字颜色丢失了,仔细找了以后才发现原来是因为图片格式的原因 当图片是png图片时文字的颜色就变成了白色的,So.........去你妹的png,用jpg吧! $dest ...

  7. 移动端canvas文字图片合成并生成图片(canvas宽度自适应移动端屏幕)

    这是我之前做的一个关于文字图片合成的代码,供大家参考,不足支出还望体谅:具体的注释在代码里都有,有什么不懂了可以留言互相交流.<!DOCTYPE html> <html lang=& ...

  8. CxImage透明图片合成和文字叠加

    1         CxImage的作用 CxImage将几张图片合成一张图片,在一张底图上添加图片,有些图片是有透明效果的,实现图片之间的透明重叠效果.另外还可以添加文字. (1)背景图片mymix ...

  9. PHP图片加水印文字及图片合成缩放

    <?php //图片添加文字水印 /*$bigImgPath = 'background.png'; $img = imagecreatefromstring(file_get_contents ...

随机推荐

  1. vue-cli(vue脚手架)超详细教程

          都说Vue2简单上手容易,的确,看了官方文档确实觉得上手很快,除了ES6语法和webpack的配置让你感到陌生,重要的是思路的变换,以前用jq随便拿全局变量和修改dom的锤子不能用了,vu ...

  2. Android视频录制命令screenrecord

    不管是教学,还是为了演示,如果能将Android手机(或平板)的屏幕录制成视频文件,那是一件非常酷的事(iOS8已经提供了这一功能,能通过OS X直接在Mac上录制iPad.iPhone的屏幕,win ...

  3. <转载>关系规范化之求最小函数依赖集(最小覆盖)

    原文链接http://blog.csdn.net/icurious/article/details/51240114 最小函数依赖集 一.等价和覆盖 定义:关系模式R<U,F>上的两个依赖 ...

  4. Linux安装nodejs和npm

    先安装,nvm,即是Node Version Manager(Node版本管理器) curl -o- https://raw.githubusercontent.com/creationix/nvm/ ...

  5. 在 Confluence 中启用 HTTP 响应压缩

    Confluence 能够支持 HTTP 的 GZip 传输编码.这个意味着 Confluence 将可以把数据压缩后传输给用户,这种配置能够针对不稳定的互联网状态下的传输速度缓慢和不稳定并且能够降低 ...

  6. Confluence 6 从一个 XML 备份中导入一个空间

    有下面 2 中方法可以导入一个空间——通过上传一个文件,或者从你 Confluence 服务器上的一个目录中导入.上传文件仅仅是针对一个小站点的情况.为了取得最好的导入结果,我们推荐你从服务器上的目录 ...

  7. java----重载

    重载: //同一个类中,方法名相同,参数列表不同[java就是靠不同的参数列表来寻找方法的],返回值可以任意,注意和函数的返回值类型相同.public class Demo { public stat ...

  8. django----图书管理

    待完成 from django.db import models # Create your models here. class Book(models.Model): nid = models.A ...

  9. 关于JDBC的总结

    1. Spring JDBC子框架是什么 答:就是一个Spring框架内置的持久层框架.既然是一个持久层框架,作用就是对数据库增删改查!! 2. SpringJDBC是使用声明类操作数据库的? 答:J ...

  10. bzoj 4816

    这题是莫比乌斯反演的典型题也是很有趣的题. 题意:求,其中f为为斐波那契数列 那么首先观察一下指数,发现是我们熟悉的形式,可以转化成这样的形式: 令T=kd,且假设n<m,有: 令 则原式= 这 ...