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>

 

posted @ 2015-09-21 17:47  彼扬  阅读(2248)  评论(0编辑  收藏  举报

感谢您的阅读,如果有了您的奉献系统会更加完善