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
php图文合成文字居中(png图片合成)的更多相关文章
- php 图片添加文字水印 以及 图片合成(微信快码传播)
1.图片添加文字水印: $bigImgPath = 'backgroud.png'; $img = imagecreatefromstring(file_get_contents($bigImgPat ...
- UIButton图片文字控件位置自定义(图片居右文字居左、图片居中文字居中、图片居左文字消失等)
在开发中经常会碰到需要对按钮中的图片文字位置做调整的需求.第一种方式是通过设置按钮中图片文字的偏移量.通过方法setTitleEdgeInsets和setImageEdgeInsets实现 代码如下: ...
- css文字居中、图片居中、div居中解决方案
一.文字居中 若文字只有一行 <!--html代码--> <div class="box"> <p class="text"> ...
- android 文字图片合成
引用:http://blog.csdn.net/cq361106306/article/details/8142526 两种方法: 1.直接在图片上写文字 String str = "PIC ...
- iOS 图片水印、图片合成文字或图片实现
这个需求可能有时候会碰到,比如自己的照片加版权,打水印等 网上的方法,有不少感觉不全对,或者需求不是特全,这里我总结了3种场景下的需求: 1.本地图片合成文字 2.本地图片合成图片 3.网络图片先下载 ...
- php 图片合成时文字颜色丢失
最近在做图片合成的时候无意间发现文字颜色丢失了,仔细找了以后才发现原来是因为图片格式的原因 当图片是png图片时文字的颜色就变成了白色的,So.........去你妹的png,用jpg吧! $dest ...
- 移动端canvas文字图片合成并生成图片(canvas宽度自适应移动端屏幕)
这是我之前做的一个关于文字图片合成的代码,供大家参考,不足支出还望体谅:具体的注释在代码里都有,有什么不懂了可以留言互相交流.<!DOCTYPE html> <html lang=& ...
- CxImage透明图片合成和文字叠加
1 CxImage的作用 CxImage将几张图片合成一张图片,在一张底图上添加图片,有些图片是有透明效果的,实现图片之间的透明重叠效果.另外还可以添加文字. (1)背景图片mymix ...
- PHP图片加水印文字及图片合成缩放
<?php //图片添加文字水印 /*$bigImgPath = 'background.png'; $img = imagecreatefromstring(file_get_contents ...
随机推荐
- HBase在HDFS上的目录介绍
总所周知,HBase 是天生就是架设在 HDFS 上,在这个分布式文件系统中,HBase 是怎么去构建自己的目录树的呢? 第一,介绍系统级别的目录树. 一.0.94-cdh4.2.1版本 系统级别的一 ...
- java多线程--AtomicReference
AtomicReference介绍 AtomicReference是作用是对"对象"进行原子操作. AtomicReference源码分析(基于JDK1.7.0_40) 在JDK1 ...
- iOS weak 内存释放问题
我们都知道weak 关键字可以解决内存不释放问题,但是使用上有些讲究. 看代码: import UIKit var str = "Hello, playground" class ...
- Stetho简化Android调试(二)
Stetho简化Android调试(一) 一文中讲述了如何使用Stetho结合Chrome远程调试Android App. Stetho给我们调试带来很大的便利,效率显著提升的同时也产生一个问题:如果 ...
- springmvc框架原理分析和简单入门程序
一.什么是springmvc? 我们知道三层架构的思想,并且如果你知道ssh的话,就会更加透彻的理解这个思想,struts2在web层,spring在中间控制,hibernate在dao层与数据库打交 ...
- python 知识梳理
1.数据类型:字符串,列表,元组,字典,集合.处理每种数据类型的函数 2.判断与循环部分 3.高级函数:lambda,map,reduce,filter 4.自定义模块以及第三方模块 5.函数式编程 ...
- Struts2中类数据封装的方式
第一种方式:属性驱动提供对应属性的set方法进行数据的封装.表单的哪些属性需要封装数据,那么在对应的Action类中提供该属性的set方法即可.表单中的数据提交,最终找到Action类中的setXxx ...
- PHP7运行环境搭建(Windows7)
注:本文来源于< PHP7运行环境搭建(Windows7) > php7号称能直追facebook的HHVM,为了体验一把传说中的高性能,我特意在本地电脑上尝试着安装了php7, ...
- Confluence 6 查看空间活动需要注意的地方
希望查看空间的活动情况,Confluence Usage Stats 插件必须在系统中启用.这个插件启用的话将会导致系统的性能问题.针对大型的 Confluence 站点,这个插件在默认情况下是禁用 ...
- 利用map和stringstream数据流解题
题目描述 喜闻乐见A+B.读入两个用英文表示的A和B,计算它们的和并输出. 输入 第一行输入一个字符串,表示数字A:第二行输入一个字符串表示数字B.A和B均为正整数. 输出 输出一个正整数n,表示A+ ...