婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP實現文字寫入圖片功能

PHP實現文字寫入圖片功能

熱門標簽:臨沂智能電銷機器人軟件 浙江外呼電話系統軟件 銀川ai電話機器人 十堰ai電話機器人效果怎么樣 芒果電銷機器人 電梯外呼線路板維修視頻 安陽自動外呼系統價格是多少 上海公司外呼系統線路 地圖標注風向標

本文實例為大家分享了PHP實現文字寫入圖片的具體代碼,供大家參考,具體內容如下

/**
 * PHP實現文字寫入圖片
 */
class wordsOnImg {
 
  public $config = null;
 
  /**
   * @param $config 傳入參數
   * @param $config['file'] 圖片文件
   * @param $config['size'] 文字大小
   * @param $config['angle'] 文字的水平角度
   * @param $config['fontfile'] 字體文件路徑
   * @param $config['width'] 預先設置的寬度
   * @param $config['x'] 開始寫入時的橫坐標
   * @param $config['y'] 開始寫入時的縱坐標
   */
  public function __construct($config=null){
    if(empty($config)){
      return 'must be config';
    }
    $fileArr = explode(".",$config['file']);
    $config['file_name'] = $fileArr[0];
    $config['file_ext'] = $fileArr[1];
    $this->config = $config;
  }
  /**
   * PHP實現圖片上寫入實現文字自動換行
   * @param $fontsize 字體大小
   * @param $angle 角度
   * @param $font 字體路徑
   * @param $string 要寫在圖片上的文字
   * @param $width 預先設置圖片上文字的寬度
   * @param $flag  換行時單詞不折行
   */
  public function wordWrap($fontsize,$angle,$font,$string,$width,$flag=true) {
    $content = "";
    if($flag){
      $words = explode(" ",$string);
      foreach ($words as $key=>$value) {
        $teststr = $content." ".$value;
        $testbox = imagettfbbox($fontsize, $angle, $font, $teststr);
        //判斷拼接后的字符串是否超過預設的寬度
        if(($testbox[2] > $width)) {
          $content .= "\n";
        }
        $content .= $value." ";
      }
    }else{
      //將字符串拆分成一個個單字 保存到數組 letter 中
      for ($i=0;$imb_strlen($string);$i++) {
        $letter[] = mb_substr($string, $i, 1);
      }
      foreach ($letter as $l) {
        $teststr = $content." ".$l;
        $testbox = imagettfbbox($fontsize, $angle, $font, $teststr);
        // 判斷拼接后的字符串是否超過預設的寬度
        if (($testbox[2] > $width)  ($content !== "")) {
          $content .= "\n";
        }
        $content .= $l;
      }
    }
    return $content;
  }
 
  /**
   * 實現寫入圖片
   * @param $text 要寫入的文字
   * @param $flag 是否直接輸出到瀏覽器,默認是
   */
  public function writeWordsToImg($text,$flag=true){
    if(empty($this->config)){
      return 'must be config';
    }
    //獲取圖片大小
    $img_pathWH = getimagesize($this->config['file']);
    //打開指定的圖片文件
    $im = imagecreatefrompng($this->config['file']);
    #設置水印字體顏色
    $color = imagecolorallocatealpha($im,0, 0, 255, 75);//藍色
    $have = false;
    if(stripos($text,"br/>")!== false){
      $have = true;
    }
    if($have){
      $words_text = explode("br/>",$text);
      $words_text[0] = $this->wordWrap($this->config['size'], $this->config['angle'], $this->config['fontfile'], $words_text[0], $this->config['width']); //自動換行處理
      $words_text[1] = $this->wordWrap($this->config['size'], $this->config['angle'], $this->config['fontfile'], $words_text[1], $this->config['width']); //自動換行處理
      $words_text[2] = $this->wordWrap($this->config['size'], $this->config['angle'], $this->config['fontfile'], $words_text[2], $this->config['width']); //自動換行處理
      imagettftext($im, $this->config['size'], $this->config['angle'], $this->config['x'], $this->config['y'], $color, $this->config['fontfile'], $words_text[0]);
      imagettftext($im, $this->config['size'], $this->config['angle'], $this->config['x'], $this->config['y']+30, $color, $this->config['fontfile'], "  ".$words_text[1]);
      imagettftext($im, $this->config['size'], $this->config['angle'], $img_pathWH[0]/2+70, $img_pathWH[1]-80, $color, $this->config['fontfile'], $words_text[2]);
      if($flag){
        header("content-type:image/png");
        imagepng($im);
        imagedestroy($im);
      }
      imagepng($im,$this->config['file_name'].'_1.'.$this->config['file_ext']);
      imagedestroy($im);
    }
    $words_text = $this->wordWrap($this->config['size'], $this->config['angle'], $this->config['fontfile'], $text, $this->config['width']); //自動換行處理
    imagettftext($im, $this->config['size'], $this->config['angle'], $this->config['x'], $this->config['y'], $color, $this->config['fontfile'], $words_text);
    if($flag){
      header("content-type:image/png");
      imagepng($im);
      imagedestroy($im);
    }
    imagepng($im,$this->config['file_name'].'_1.'.$this->config['file_ext']);
    imagedestroy($im);
  }
}
 
$text = "Dear Kangbr/>If you can hold something up and put it down, it is called weight lifting;if you can hold something up but can never put it down, it's called bueden bearing. Pitifully, most of people are bearing heavy burdens when they are in love.\n\nBeing nice to someone you dislike doesn't mean you're a hypocritical people. It means you're mature enough to tolerate your dislike towards them.br/>Mr. Kang";
 
$data = array(
  'file'=>'20171226152410.png',
  'size'=>12,
  'angle'=>0,
  'fontfile'=>'./Font/ChalkboardSE.ttc',
  'width'=>270,
  'x'=>20,
  'y'=>70
);
//使用
$wordsOnImgObj = new wordsOnImg($data);
$wordsOnImgObj->writeWordsToImg($text);

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • PHP獲取photoshop寫入圖片文字信息的方法

標簽:武威 遂寧 徐州 吐魯番 寧夏 荊門 遵義 常州

巨人網絡通訊聲明:本文標題《PHP實現文字寫入圖片功能》,本文關鍵詞  PHP,實現,文字,寫入,圖片,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP實現文字寫入圖片功能》相關的同類信息!
  • 本頁收集關于PHP實現文字寫入圖片功能的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 当阳市| 扬中市| 泰州市| 德化县| 金乡县| 宝丰县| 页游| 锦州市| 龙胜| 永德县| 叙永县| 东乌珠穆沁旗| 宝清县| 朝阳市| 崇左市| 古浪县| 康定县| 梓潼县| 丰镇市| 临泽县| 监利县| 宁远县| 黔东| 马关县| 革吉县| 阿拉善右旗| 临海市| 常德市| 电白县| 肥城市| 集安市| 临邑县| 南充市| 襄垣县| 曲水县| 陆河县| 涞水县| 亚东县| 大同县| 泽普县| 喀喇沁旗|