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 ...
随机推荐
- python zip文件密码爆破
#!/usr/bin/env # coding=UTF-8 import zipfile import threading import os import sys class CrackZip: d ...
- hdu1233(最小生成树)
Problem Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能 ...
- 数据库 数据库SQL语句五
集合运算 union 并集(两个集合如果有重复部分,那么只显示一次重复部分) union all 并集(两个集合如果有重复部分,那么重复部分显示两次) intersect 交集 minus 差集 -- ...
- oldboy第十三天学习
1.现在给我的感觉是,python终于入门了开始越学越简单了.变得更好理解了. 一.memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它 ...
- IOS 网络编程 代码
// ViewController.m // 16_网络编程 // Created by lanou3g on 14-12-19. // Copyright (c) 2014年 mxt. Al ...
- c++中构造函数 、析构函数的作用域详解
我们知道,在c++中,析构函数是在函数作用域尾部执行析构函数,从而释放对象,但是有一种情况下,析构函数作用域发生变化,请看下面的例子,定义了一个Stock类,Stock类存放在stock.h中,主调用 ...
- $provide.decorator
$provide.decorator 是angular 提供的一个功能. 目的是让我们可以扩展或装修我们的服务. var app = angular.module("app", [ ...
- Entity Framework with MySQL 学习笔记一(关系)
这一篇说说 EF Fluent API 和 DataAnnotations 参考 : http://msdn.microsoft.com/en-us/data/jj591617.aspx http:/ ...
- USB 0xC0000012 错误详解
0xC0000012Bus Hound 6.01 capture on Windows Vista Service Pack 1 (x86). Complements of www.perisoft. ...
- 51单片机C51毫秒级(ms)精确延时
如下程序能实现ms毫秒级的比较精确的延时 void Delayms(unsigned int n) { unsigned int i,j; ;j--) ;i>;i--); } 用keil可以看出 ...