<?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图片上面写文字,输出图片的更多相关文章

  1. 函数putText()在图片上写文字

    #include <iostream> #include <opencv2/opencv.hpp> using namespace std; using namespace c ...

  2. 使用Qpaint在图片上写文字

    开发过程中需要实现在图片上叠加文字,可以采用Qpaint在图片上写文字,然后将图片显示在上面.再将Qlabel加到Qwidget中.效果如下 //创建对象,加载图片 QPixmap pix; pix. ...

  3. thinkphp 利用GD库在图片上写文字

    <?php /** * Created by PhpStorm. * User: Administrator */ namespace Home\Event; use \Think\Image; ...

  4. C# GDI+ 简单实现图片写文字和图片叠加(水印)(转)

    using System; using System.Collections; using System.Configuration; using System.Data; using System. ...

  5. python生成透时图片and 写文字

    import Image from get_png import getpng def transparent(infile): #open png,covert it into 'RGBA mode ...

  6. Swift - 给图片添加文字水印(图片上写文字,并可设置位置和样式)

    想要给图片添加文字水印或者注释,我们需要实现在UIImage上写字的功能. 1,效果图如下: (在图片左上角和右下角都添加了文字.) 2,为方便使用,我们通过扩展UIImage类来实现添加水印功能 ( ...

  7. C#图片上写文字

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Dr ...

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

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

  9. android图片加水印,文字

    两种方法: 1.直接在图片上写文字 String str = "PICC要写的文字"; ImageView image = (ImageView) this.findViewByI ...

随机推荐

  1. Carthage&&cocopads 摘抄笔记

    Carthage 是 iOS/Mac 开发生态圈的一个包管理工具,与现在流行的 CocoaPods 不同,它是一个去中心化的解决方案.知道它已经有一段时间了,但是一直没有好好玩过,今天整合 Carth ...

  2. 给控制器添加工具栏(Swift语言)

    //懒加载工具条 private lazy var toolBar: UIToolbar = UIToolbar() //设置底部的工具条 private func setToolBar() { // ...

  3. OC之字符串 NSString与NSMutableString

    一.NSString 不可变字符串的操作1)将字符串常量对象直接赋值给字符串引用 NSString *str1=@"hello"; 字符串对象的输出格式:NSLog(@" ...

  4. Dapper基本增删改查

    说明: 1.在using语句块中不用dbConnection.Open(),因为Execute方法中会Open,并且在执行完成会Close. 2.在Ado.Net中要手动Open,在Using语句块中 ...

  5. MySQL 列子查询及 IN、ANY、SOME 和 ALL 操作符的使用

    列子查询是指子查询返回的结果集是 N 行一列,该结果通常来自对表的某个字段查询返回. 一个列子查询的例子如下: SELECT * FROM article WHERE uid IN(SELECT ui ...

  6. oracle 集合运算符

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAY4AAACNCAIAAAAvhQoxAAAbmklEQVR4nO1dX6jc1pn/0lBH4KVV6J ...

  7. 工作流activiti-01个人小结

    最近公司需要开发工作流 使用的是activiti  个人拿着官方的User Guide 摸索了好几天 现做个小结: 对公司的小型OA开发一般用到如下几点: 1.依据客户业务得到业务流程图  可以是xm ...

  8. 转:测试用书(出处:cnblog--liangshi)

    列表格式为:图书分类.中文书名.英文书名.作者.排名不分先后,用红色标记出我推荐的书籍. 测试入门 软件测试(第2版) Software Testing (2e), Ron Patton 一本测试入门 ...

  9. ubuntu 14.下 netbeans 自体锯齿 消除

    Ubuntu下NetBeans消除字体锯齿的方法 在netbeans.conf 文件的netbeans_default_options的最后添加 -J-Dswing.aatext=true -J-Da ...

  10. iOS常见异常Exec_Bad_Access问题解决办法

    iOS常见异常Exec_Bad_Access问题解决办法     在iOS开发中,经常遇到Exec_Bad_Access异常,导致程序奔溃问题,一般这个问题都是因为过早的release对象,然后又对该 ...