GD와 PHP에서 또 다른 문제가 발생했습니다.텍스트 배경색을 그립니다. PHP와 GD
이미지에 텍스트를 성공적으로 쓰고 있습니다.
그러나 직사각형 (또는 모든 모양)의 텍스트를 이미지 위에 직접 배치하는 대신 이미지를 배치 할 텍스트의 단색 배경을 만들기 위해 텍스트를 배치하는 것이 유리한 경우가 발생했습니다 텍스트를 아주 쉽게 읽을 수는 없습니다. 그 다음 오버레이를 단색 배경에 적절한 크기의 이미지에 텍스트 쓰기 텍스트
- 가 색으로 배경 채우기 :
내 두 개의 아이디어를 우선 순위에 따라입니다 대상에 이미지는
나는 # 1을하고 # 2 내가이를 만들 수 있도록 텍스트의 크기를 결정하는 방법을 모르는 및 지나치게 복잡한 것 같다하는 방법을 알아낼 수 없습니다 그것을위한 새로운 이미지 . 명확성을 위해
, 여기에 아주 좋지 않다 출력 :그리고 여기에 내가 어떤 색상의 텍스트 뒤에 꽉 상자,보고 싶은 방법은 다음과 같습니다
내가 어떤 제안에 열려있어,하지만 다른 이미지 나 hackiness없이 즉석에서 색상을 그리기 분명히 내 첫번째 선택이 될 것입니다.
업데이트 : @Dan이 `imagettftext'를 사용하여 제안 후
, 나는 그것이 내가 내 라이브러리에 해당 함수에 대한 지원이 추가 높은 시간이라고 결정했다. 하나의 중요한 문제를 제외하고는 모든 것이 예상대로 작동합니다.
단색 배경 (투명도 0)으로 작성된 경우에도 이미지에 쓰여진 텍스트가 여전히 투명합니다.
여기 테스트에 쓴 스크립트는 다음과 같습니다
<?php
set_include_path('backbone:global:jquery');
require_once('Image.php');
$scout = new Image();
$scout->source = "scout.jpg";
$result = $scout->Write->Font(25, 25, "A Fairly Long String", 12, "#FF0000", 0, "LiberationSans-Regular.ttf", 1, "#FFFF00", .4, 4);
if(!isset($_GET['dev']))
{
header("Content-Type: " . $scout->contentType());
}
if($result)
{
$scout->output();
}
?>
필요 내가 사용하는 파일/:
1. scout
3. 이미지 처리 라이브러리
- Image
- ImageBase
- ImageCombine
-ImageDraw
- ImageManipulate
- ImageWrite
내가 대한 모든 파일을 사과, 정말에만 Image
, ImageBase
, ImageCombine
및 ImageWrite
을 사용하지만 다른 로더에 의해 에드 require_once
이다.여기
그리고 여기 제로 투명도 (완전 불투명)으로 출력입니다 :
$result = $scout->Write->Font(25, 25, "A Fairly Long String", 12, "#FF0000", 0, "LiberationSans-Regular.ttf", 1, "#FFFF00", 1, 4);
하나를 아이디어가 원인 일 수 있습니까? 그것은 아주 어딘가에 내 코드의 가능성이 있지만 그것은이 버그를 제외하고해야한다고 생각했던 것처럼 정확하게 작동한다는 것이 이상하게 보입니다.
가 어떤 기능을 당신이 당신의 이미지에 텍스트를 작성하기 위해 사용합니까 : 텍스트를 쓰는 동안, 당신은 ON 을 혼합 알파를 설정해야합니다 문자 박스 강제로 100 % 투명성이없는 배경 텍스트를 작성하려면? ttf를 옵션으로 사용하고 있습니까? – Dan
@Dan 그것은 확실히 선택의 여지가 있지만, 그냥 뭔가를 쉽게 설정, 나는 기본 [imagestring] (http://www.php.net/manual/en/function.imagestring.php) 및 [ imagestringup] (http://www.php.net/manual/en/function.imagestringup.php). ** 편집 ** ** 그런데, 나는이 라이브러리를 사용하고있다. (https://github.com/rockerest/myframework/blob/master/backbone/ImageWrite.php). – rockerest