imageCreateTrueColor 및 ImagetTfText는 PHP를 사용하여 이미지 생성 및 텍스트 렌더링을 처리 할 때 매우 일반적으로 사용되는 두 가지 기능입니다. 특히 다국어 환경에서는 글꼴이 달린 문제를 다루는 것이 개발에서 일반적인 과제입니다. 이 기사는 예제를 결합 하여이 두 기능을 올바르게 사용하는 방법을 설명하여 중국어 또는 다른 비 영어 캐릭터가 차량으로 표시되는 것을 피합니다.
imageTtfText를 사용하여 다국어 텍스트를 렌더링 할 때 일반적인 문제가 발생합니다. 일반적으로 다음과 같은 이유가 발생합니다.
글꼴 파일은 대상 언어 문자를 지원하지 않습니다.
문자열 인코딩은 글꼴과 일치하지 않습니다 (일반적으로 UTF-8 및 GBK의 인코딩 문제).
PHP 스크립트 또는 이미지를 처리 할 때 인코딩이 올바르게 처리되지 않습니다.
"simhei.ttf", "notosanscjk.ttf"등과 같은 다국어 문자를 지원하는 .ttf 글꼴 파일을 선택하십시오.
입력 텍스트가 UTF-8으로 인코딩되어 있는지 확인하십시오.
PHP 스크립트에서는 혼란을 피하기 위해 UTF-8 인코딩을 균일하게 인코딩하십시오.
imageCreateTrueColor를 사용하여 텍스트 색상과 배경색이 올바르게 표시되도록 진정한 색상 이미지를 만듭니다.
다음 예제는 PHP에서 imageCreatetRuecolor 및 imagettftext를 사용하여 중국 함유 이미지를 생성하는 방법을 보여줍니다.
<?php
// 내용을 설정하십시오UTF-8코딩
header('Content-Type: image/png; charset=utf-8');
// 넓은 시트를 만듭니다300,높은100진정한 색 캔버스
$width = 300;
$height = 100;
$image = imagecreatetruecolor($width, $height);
// 배경색을 설정하십시오(하얀색)
$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);
// 텍스트 색상을 설정하십시오(검은색)
$black = imagecolorallocate($image, 0, 0, 0);
// 중국어 텍스트를 작성하십시오,그것이 있는지 확인하십시오UTF-8코딩
$text = "다국어 글꼴 테스트";
// 중국어를 지원하는 글꼴 파일을 선택하십시오,실제 저장 위치에 따라 경로를 조정해야합니다.
$font = __DIR__ . '/fonts/SimHei.ttf';
// 사용 imagettftext 텍스트 렌더링,매개 변수입니다:이미지 리소스、글꼴 크기、각도、x동등 어구、y동등 어구、색상、글꼴 파일 경로、텍스트 내용
imagettftext($image, 20, 0, 10, 50, $black, $font, $text);
// 브라우저에 사진을 출력합니다
imagepng($image);
// 이미지 자원을 파괴하십시오,무료 메모리
imagedestroy($image);
?>
글꼴 파일 <br> 사용하는 .ttf 글꼴 파일이 중국어를 지원하는지 확인하십시오. 시스템 글꼴 디렉토리에서 복사하거나 오픈 소스 글꼴을 다운로드 할 수 있습니다. 이 경로는 절대 또는 상대 경로를 사용하고 파일 권한에주의를 기울이는 것이 좋습니다.
코딩
PHP 파일은 BOM없이 UTF-8으로 저장되며 텍스트 내용 $ 텍스트는 UTF-8에서도 인코딩되어야합니다. 그렇지 않으면 렌더링 할 때 차량이 해제됩니다.
환경 구성 <br> PHP 환경에 GD 라이브러리가 설치되어 있고 프리 타입 글꼴 기능이 지원되는지 확인하십시오.
URL을 통해 글꼴 리소스 또는 외부 파일을 참조 해야하는 경우 도메인 이름은 예에서 M66.net 으로 대체됩니다.