php图片上面写文字,输出图片
<?php
/*
param $image 图象资源
param size 字体大小
param angle 字体输出角度
param showX 输出位置x坐标
param showY 输出位置y坐标
param font 字体文件位置
param content 要在图片里显示的内容
*/
class showChinaText {
var $text = 'php网站程序开发';
var $font = 'fonts/simsun.ttc'; //如果没有要自己加载到相应的目录下(本地www)
var $angle = 0;
var $size = 15;
var $showX = 100;
var $showY = 160; var $text0 = '2011 年 12 月 12 日';
var $angle0 = 0;
var $showX0 = 230;
var $showY0 = 200; var $text1 = '新郎';
var $angle1 = 20;
var $showX1 = 135;
var $showY1 = 285; var $text2 = '新娘';
var $angle2 = 20;
var $showX2 = 300;
var $showY2 = 285; var $text3 = '北京市海淀区香格里拉酒店';
var $angle3 = 0;
var $showX3 = 120;
var $showY3 = 445; var $text4 = '上午十一点整';
var $angle4 = 0;
var $showX4 = 305;
var $showY4 = 480; function showChinaText($showText = '') {
$this->text = ! isset ( $showText ) ? $showText : $this->text;
$this->show ();
}
function createText($instring) {
$outstring = "";
$max = strlen ( $instring );
for($i = 0; $i < $max; $i ++) {
$h = ord ( $instring [$i] );
if ($h >= 160 && $i < $max - 1) {
$outstring .= substr ( $instring, $i, 2 );
$i ++;
} else {
$outstring .= $instring [$i];
}
}
return $outstring;
}
function show() {
//输出头内容
Header ( "Content-type: image/png" );
//建立图象
//$image = imagecreate(400,300);
$image = imagecreatefromjpeg ( "01.jpg" ); //这里的图片,换成你的图片路径
//定义颜色
$red = ImageColorAllocate ( $image, 255, 0, 0 );
$white = ImageColorAllocate ( $image, 255, 255, 255 );
$black = ImageColorAllocate ( $image, 0, 0, 0 );
//填充颜色
//ImageFilledRectangle($image,0,0,200,200,$red);
//显示文字
$txt = $this->createText ( $this->text );
$txt0 = $this->createText ( $this->text0 );
$txt1 = $this->createText ( $this->text1 );
$txt2 = $this->createText ( $this->text2 );
$txt3 = $this->createText ( $this->text3 );
$txt4 = $this->createText ( $this->text4 );
//写入文字
imagettftext ( $image, $this->size, $this->angle, $this->showX, $this->showY, $white, $this->font, $txt );
imagettftext ( $image, $this->size, $this->angle0, $this->showX0, $this->showY0, $white, $this->font, $txt0 );
imagettftext ( $image, $this->size, $this->angle1, $this->showX1, $this->showY1, $white, $this->font, $txt1 );
imagettftext ( $image, $this->size, $this->angle2, $this->showX2, $this->showY2, $white, $this->font, $txt2 );
imagettftext ( $image, $this->size, $this->angle3, $this->showX3, $this->showY3, $white, $this->font, $txt3 );
imagettftext ( $image, $this->size, $this->angle4, $this->showX4, $this->showY4, $white, $this->font, $txt4 );
//ImageString($image,5,50,10,$txt,$white);
//显示图形
imagejpeg ( $image );
imagegif ( $image, "a2.jpg" );
ImageDestroy ( $image );
}
}
?>
<?php //使用
$s = new showChinaText ();
?>
改造后版本:背景图片自定义上传
<?php
class ChinaText { var $font = 'simsun.ttc'; //如果没有要自己加载到相应的目录下(本地www)
var $size = 15; var $multexts = null;
var $bg=''; function ChinaText($title_text=null,$bg='11.jpg') {
$this->multexts = $title_text;
$this->bg = $bg; $this->show ();
} function show() {
//输出头内容
Header ( "Content-type: image/png" );
//建立图象
//$image = imagecreate(400,300);
$image = imagecreatefromjpeg ( "./data/upload/".$this->bg); //这里的图片,换成你的图片路径
//定义颜色
$red = ImageColorAllocate ( $image, 255, 0, 0 );
$white = ImageColorAllocate ( $image, 255, 255, 255 );
$black = ImageColorAllocate ( $image, 0, 0, 0 );
//填充颜色
//ImageFilledRectangle($image,0,0,200,200,$red); foreach ($this->multexts as $tx){
imagettftext (
$image,
$this->size,
$tx['angle'],
$tx['showX'],
$tx['showY'],
$black,
$this->font,
$tx['text'] ); } //显示图形
imagejpeg ( $image );
//imagegif ( $image, "a2.jpg" );
//ImageDestroy ( $image );
}
}
控制器部分:
public function test2(){
$array = array(
array('text'=>'aaaopop','angle'=>0,'showX'=>100,'showY'=>160),
array('text'=>'bbb成果,没有任何','angle'=>0,'showX'=>100,'showY'=>190),
array('text'=>'cccqqqqq踩踩','angle'=>0,'showX'=>100,'showY'=>220),
array('text'=>'ddd 踩踩踩踩踩','angle'=>0,'showX'=>100,'showY'=>250),
);
$s = new ChinaText($array);
}
public function test3(){
//$image = $_FILES['bg'];
$text = $_POST['text'];
//上传图片
//上传目录
$imagebg = $this->_upload($_FILES['bg'], '/');
if ($imagebg['error']) {
$this->error($imagebg['info']);
} else {
$data['imagebg'] = $imagebg['info'][0]['savename'];
//echo $data['imagebg'];
}
$title['showY']=100;
$title_text = array();
for ( $i=0;$i<count($text);$i++){
$title['text']=$text[$i];
$title['angle']=0;
$title['showX']=100;
$title['showY']+=50*$i;
$title_text[] = $title;
}
$s=new ChinaText($title_text,$data['imagebg']);
}
html :
<form action="{:U('test/test3')}" method="post" enctype="multipart/form-data">
<span>背景图片:</span>
<input type="file" name='bg'><br><br>
<span>文字区域:</span>
<input type="text" name="text[]"><br><br>
<input type="text" name="text[]"><br><br>
<input type="text" name="text[]"><br><br>
<input type="submit" value="生成">
</form>
php图片上面写文字,输出图片的更多相关文章
- 函数putText()在图片上写文字
#include <iostream> #include <opencv2/opencv.hpp> using namespace std; using namespace c ...
- 使用Qpaint在图片上写文字
开发过程中需要实现在图片上叠加文字,可以采用Qpaint在图片上写文字,然后将图片显示在上面.再将Qlabel加到Qwidget中.效果如下 //创建对象,加载图片 QPixmap pix; pix. ...
- thinkphp 利用GD库在图片上写文字
<?php /** * Created by PhpStorm. * User: Administrator */ namespace Home\Event; use \Think\Image; ...
- C# GDI+ 简单实现图片写文字和图片叠加(水印)(转)
using System; using System.Collections; using System.Configuration; using System.Data; using System. ...
- python生成透时图片and 写文字
import Image from get_png import getpng def transparent(infile): #open png,covert it into 'RGBA mode ...
- Swift - 给图片添加文字水印(图片上写文字,并可设置位置和样式)
想要给图片添加文字水印或者注释,我们需要实现在UIImage上写字的功能. 1,效果图如下: (在图片左上角和右下角都添加了文字.) 2,为方便使用,我们通过扩展UIImage类来实现添加水印功能 ( ...
- C#图片上写文字
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Dr ...
- PHP图片加水印文字及图片合成缩放
<?php //图片添加文字水印 /*$bigImgPath = 'background.png'; $img = imagecreatefromstring(file_get_contents ...
- android图片加水印,文字
两种方法: 1.直接在图片上写文字 String str = "PICC要写的文字"; ImageView image = (ImageView) this.findViewByI ...
随机推荐
- Swift隐式可选型简单介绍
/* 隐式可选型 */ // 隐式可选型同样可以赋值为nil, 而且在后面对这个变量的使用也可以不用进行解包 var value: String! = nil // print(value) 这行代码 ...
- 关于C++的变量和类的声明和定义
什么是变量?变量或者叫对象,是一个有具名的.可以供程序操作的存储空间.这里具名是指变量是有名字的,可供操作是指能进行加减乘除或者输入输出等操作,存储空间则是指有一块属于它的内存空间. 为了便于说明,标 ...
- JavaScript 禁用键盘按钮
代码写多了,有些使用过的方法和技巧会一时半会想不起来,平日记录下来,方便自己和有需要的人日后查阅. $(document).keydown(function () { if (window.event ...
- js 音乐
define(function(require,exports,module){ var $music = document.getElementById('music'); var $music_m ...
- jquery与discuz冲去的解决方法
把相应的JQUERY代码天下如下代码: <script type="text/javascript"> jQuery.noConflict(); </script ...
- ubuntu下 使用AB做压力测试
1最近刚开始接触apache大数据下数据优化,讲一下apache 下ab压力测试工具. 程序“ab”尚未安装. 您可以使用以下命令安装: apt-get install apache2-utils 以 ...
- Linux_install mod_ssl openssl apache
1.下载 mod_ssl 和 apache 登入http://www.modssl.org/source/,下载 mod_ssl-2.8.31-1.3.41.targz: 2.8.31是mod_ssl ...
- css、js的相互阻塞
先决条件:脚本前面存在外部样式 以下试验虽然是在chrome下,但是对于IE8+以及其他浏览器也适用. 1.内联脚本(http://jsbin.com/mudab/1) <!DOCTYPE ht ...
- Entity Framewor 学习笔记 (碎碎的东西)
Proxy 类代理类是为了让EF实现lazy load才需要的 public class BloggingContext : DbContext { public BloggingContex ...
- 如何禁止KEIL初始化RAM为零& 如何判断是软复位还是上电复位
(1)如何禁止KEIL初始化RAM为零? 1. 在KEIL Noinit 打钩 2. <1> 另须对需要热启动保持的变量用 _at_ 关键字指定某个区域,否则还是没用 <2>或 ...