
正文
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>








