>백엔드 개발 >PHP 튜토리얼 >PHP는 GD 라이브러리를 사용하여 그림(코드)에 텍스트를 추가하는 방법을 구현합니다.

PHP는 GD 라이브러리를 사용하여 그림(코드)에 텍스트를 추가하는 방법을 구현합니다.

不言
不言원래의
2018-08-20 15:52:054313검색

이 글의 내용은 PHP GD 라이브러리를 사용하여 사진에 텍스트를 추가하는 방법(코드)에 관한 것입니다. 필요한 친구들이 참고할 수 있기를 바랍니다.

이 장에서 설명한 대로 PHP의 gd 라이브러리 확장을 사용하여 축소판 생성, 이미지 자르기, 이미지에 텍스트 추가 등의 이미지 처리를 수행할 수 있습니다.

1. 먼저 필요한 텍스트를 받아야 합니다. $key = $_GET['key']; 수신된 값의 안티 SQL 처리와 같은 특정 작업은 여기서 소개되지 않습니다.

2. gd 라이브러리를 직접 사용하여 텍스트를 붙여넣으면 요구사항을 충족하지 못합니다. 왜냐하면 일반적으로 직접 붙여넣을 때 단어 간격이 없고 매우 가깝기 때문에 미적 측면에 영향을 미치기 때문입니다. 필요하지 않으므로 수신된 콘텐츠를 분할해야 합니다. 아래에서는 일반 캡슐화된 함수를 사용하여 중국어 문자열을 배열로 분할합니다.

/**
 * 将字符串分割为数组    
 * @param  string $str 字符串
 * @return array       分割得到的数组
 */
function mb_str_split($str){
    return preg_split(&#39;/(?<!^)(?!$)/u&#39;, $str );
}

3 위 함수는 텍스트를 배열로 분할합니다. 다음으로 gd 라이브러리를 사용하여 텍스트 배열을 그림에 하나씩 추가합니다.

<?php
function index(){
     $img =$back = PATH_ROOT."1.jpg";//图片跟路径
     $str= $_GET(&#39;key&#39;);//接收值
     $text = $this->mb_str_split($str);//将值拆分为数组
     $size = 40;//字体大小
     $font = PATH_ROOT."/1.ttf";//加载字体ttf
     $img = imagecreatefromjpeg($img);// 加载已有图像
     $black = imagecolorallocate($img, 24, 165, 234);//设置颜色为蓝色
     $x =355;//首个字的横坐标
     $red = imagecolorallocate($img,255,255,255);//创建白色底色
     imagefilledrectangle($img,340,40,420,120,$red);//构建一个矩形
     foreach ($text as $k=>$v){
         imagettftext($img, $size, 0, $x, 100, $black, $font, $v);//循环添加文字
         $x = $x + 70;//增加横坐标来做到间距的效果
     }
     $time = rand(1,10000).time().".png";//定义图片名
     ImagePNG($img,PATH_ROOT."/".$time);//保存图片
}
function mb_str_split($str){
     return preg_split(&#39;/(?<!^)(?!$)/u&#39;, $str );
}

이런 방식으로 수신된 텍스트를 사진을 저장하고 동시에 저장

헤더('Content-Type: image/png')를 추가하면 사진이 브라우저에 표시됩니다

관련 권장 사항:

php_php로 원을 그리는 방법 원 다이어그램을 그리는 gd 라이브러리

GD 라이브러리를 사용하여 정사각형 그림을 둥근 그림으로 바꾸는 PHP 방법(코드)

위 내용은 PHP는 GD 라이브러리를 사용하여 그림(코드)에 텍스트를 추가하는 방법을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.