beyang
<?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>

 

分类:

技术点:

相关文章: