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>
时间: 2024-10-11 10:30:09

php图片上面写文字,输出图片的相关文章

C#图片上写文字

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Drawing; namespace BitMap { /// <summary> /// Image 的摘要说明 /// </summary> public class Image : IHttpHandler { public void ProcessRequest(HttpConte

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

using System; using System.Collections; using System.Configuration; using System.Data; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControl

java图片验证码包括文字和图片的旋转

java图片验证码包括文字图片的旋转: 此例子演示的是两位数的加减运算,需要的可以通过自己的修改获得更多的方式: 或者我上传的资源中也有其他的两种方式供选择:http://download.csdn.net/detail/huitoukest/8043711 package com.utils; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; im

python生成透时图片and 写文字

import Image from get_png import getpng def transparent(infile): #open png,covert it into 'RGBA mode',resize it,get data then make a datalist datalist=list(Image.open(infile,'r').convert('RGBA').resize((1000,1000),Image.BILINEAR).getdata()) #color(0,

HTML/CSS实现文字环绕图片布局

原文: https://blog.csdn.net/yiyelanxin/article/details/75006925 在一个图文并茂的网页上,文字环绕图片可以使布局美观紧凑,如何实现呢?有两种办法:1.利用图片属性实现代码如下: <p style="width:400px;"> <img src="images/bkjj.jpg" align="right" width="120" hspace=&qu

一些浏览器智能翻转图片,php判断并复制(覆盖)带有Orientation图片翻转信息的JPEG图片

/** * 处理带有Orientation图片翻转信息的JPEG图片 * param $imagePath 图片资源路径 * param $dscPath 目标路径 * 照片中EXIF Orientation 参数让你随便照像但都可以看到正确方向的照片而无需手动旋转(前提要图片浏览器支持,Windows 自带的不支持) * * */public static function delImgOrientation($imagePath, $dscPath = null){ /* exif_imag

图片上的手写文字怎样才能转换成文档文字?

不知道大家有没有曾遇到过将手写的图片内容转化成文字的情况,那么大家都是怎样操作的呢?不会和小编一样将图片上的文字一点一点的敲打成文档文字的吧!其实生活中是有简单的方法的,今天小编就将这个简单的操作方法分享给大家. 第一步:首先,我们需要打开一个OCR文字识别工具,如果小伙伴们的电脑上没有这样的软件的话,可以下载一款哈. 第二步:在OCR文字识别功能的页面中,从多种功能中选择"手写字体识别",并且需要在手写字体识别的页面中上传图片,这样就可以进行手写字识别的操作了. 第三步:将手写字体的

117.C语言实现桌面输出图片,桌面输出文字,桌面画线

通过获取窗口句柄,然后获取窗口DC,然后画图 1 #include <Windows.h> 2 #include <stdio.h> 3 4 //桌面画线 5 void drawLine() 6 { 7 //获取控制台窗口 8 //HWND hwnd = GetConsoleWindow(); 9 //获取输出 10 //HDC hdc = GetDC(hwnd); 11 //获取桌面窗口 12 HWND hwnd = GetDesktopWindow(); 13 //获取输出 1

PHP加水印代码 支持文字和图片水印

PHP加图片水印.文字水印类代码,PHP加水印类,支持文字图片水印的透明度设置.水印图片背景透明.自己写的一个类,因为自己开发的一套CMS中要用到,网上的总感觉用着不顺手,希望大家也喜欢这个类,后附有类使用方法. <?php class WaterMask{ public $waterType = 1; //水印类型:0为文字水印.1为图片水印 public $pos = 0; //水印位置 public $transparent = 45; //水印透明度 public $waterStr =