标签: imagettftext

具有透明度/ Alpha背景的PHP GD文本

好吧,我有一个问题,让我的文字覆盖在部分透明的图像上.我希望文本是实体的,但我希望图像的背景部分是透明的,文本的部分是实心的,我有,问题是文本继承了其中一个的透明背景以前的图层.这里是代码,输出的一个例子,在那个输出下我想要的样子.图像位于浅灰色背景上,因此在深灰色之间的图像周围的光边界是透明的,但没有其他任何东西应该特别是文本.它似乎不是文本本身,而是文本块的背景是透明的.正如你所看到的那样不是很理想.请帮忙,这是我完成项目的唯一问题.:)

无法发布图像,因此继承了示例输出图像和所需结果(orig)的链接:

在此输入图像描述

<?php

$img = imagecreatetruecolor(200, 50);

$imageX = imagesx($img);
$imageY = imagesy($img);

imagealphablending($img, false);
imagesavealpha($img, true);

$transparent = imagecolorallocatealpha($img, 255,255,255, 127);
$white = imagecolorallocate($img, 255,255,255);
$grey = imagecolorallocate($img, 127,127,127);
imagefilledrectangle($img, 0, 0, $imageX, $imageY, $grey);
imagefilledrectangle($img, 2, 2, $imageX-4, $imageY-4, $transparent);

$font = "./arialbd.ttf";
$fontSize = 12;
$text = "THIS IS A TEST";

$textDim = imagettfbbox($fontSize, 0, $font, $text);
$textX = $textDim[2] - $textDim[0];
$textY = $textDim[7] - $textDim[1];

$text_posX = ($imageX / 2) - ($textX / …
Run Code Online (Sandbox Code Playgroud)

php gd transparent imagettftext

7
推荐指数
1
解决办法
1万
查看次数

PHP imagefttext(imagettftext)没有显示任何内容

我几乎肯定有一个愚蠢的原因,这不起作用,但我只是想不出这个.我只是试图用imagettftext将一些文本打印成图形,但是我无法显示这些文字.这是在GoDaddy服务器上,所以我不控制所有内容,但这里是phpinfo()的规范:

  • PHP版本5.2.14
  • --with-gd'' - with-freetype-dir =/usr'' - with-jpeg-dir =/usr'' - with-png-dir =/usr/bin/libpng-config'' - -enable-GD-本地-TTF"
  • 已启用GD支持
  • 捆绑的GD版本(2.0.34兼容)
  • 启用FreeType支持
  • FreeType链接与freetype
  • FreeType版本2.2.1

这是我正在使用的代码.没有什么花哨或奇怪的.

$width = 270;
$height = 25;
$image = imageCreate($width, $height);
$white = imageColorAllocate($image, 255, 255, 255);
$black = imageColorAllocate($image, 0, 0, 0);
$font = 'verdana.ttf';
imagefttext($image, 16, 0, 0, 0, $black, $font, 'TESTING TEXT');
header("Content-type:  image/gif");
imageGIF($image);
Run Code Online (Sandbox Code Playgroud)

我尝试过不同的方式更改字体名称:

$font = './verdana.ttf';
$font = dirname(__FILE__).'/verdana.ttf';
Run Code Online (Sandbox Code Playgroud)

我尝试使用PNG而不是GIF,我尝试过使用imagefttext()和imagettftext(),我尝试过显示错误,但它没有显示任何错误,只是一个空白的屏幕.有任何想法吗?它必须是如此愚蠢的东西......

php gd imagettftext

6
推荐指数
1
解决办法
1万
查看次数

使用PHP GD创建具有不同字体的图像表单文本

我一直在使用这个简单的脚本从文本生成图像:

<?php
header('Content-type: image/png');

$color = RgbfromHex($_GET['color']);

$text = urldecode($_GET['text']);

$font = 'arial.ttf';

$im = imagecreatetruecolor(400, 30);

$bg_color = imagecolorallocate($im, 255, 255, 255);

$font_color = imagecolorallocate($im, $color[0], $color[1], $color[2]);

imagefilledrectangle($im, 0, 0, 399, 29, $bg_color);

imagettftext($im, 20, 0, 10, 20, $font_color, $font, $text);

imagepng($im);

imagedestroy($im);

function RgbfromHex($hexValue) {
    if(strlen(trim($hexValue))==6) {
        return array(
                     hexdec(substr($hexValue,0,2)), // R
                     hexdec(substr($hexValue,2,2)), // G
                     hexdec(substr($hexValue,4,2))  // B
                    );
    }
    else return array(0, 0, 0);
}

?>
Run Code Online (Sandbox Code Playgroud)

我用file.php调用脚本?text = testing script&color = 000000

现在我想知道如何在同一图像中混合使用普通和粗体字体生成文本,例如 file.php?text=testing <b>script</b>&color=000000


感谢dqhendricks帮助我解决这个问题. …

php gd image image-processing imagettftext

6
推荐指数
1
解决办法
9849
查看次数

使用带有多行的imagettftext函数?有人这样做过吗?

我用php创建透明文本 - > png图像,到目前为止一直很好.唯一的问题是我希望能够通过固定的宽度来进行文本自动换行.或者也可以在文本中插入断行符.有没有人有任何exp这样做?这是我的代码......

<?php

$font = 'arial.ttf';
$text = 'Cool Stuff! this is nice LALALALALA LALA HEEH EHEHE';
$fontSize = 20;

$bounds = imagettfbbox($fontSize, 0, $font, $text); 

$width = abs($bounds[4]-$bounds[6]); 
$height = abs($bounds[7]-$bounds[1]); 



$im = imagecreatetruecolor($width, $height);
imagealphablending($im, false);
imagesavealpha($im, true);


$trans = imagecolorallocatealpha($im, 255, 255, 255, 127);

// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);


imagecolortransparent($im, $black);
imagefilledrectangle($im, 0, 0, $width, $height, $trans);


// …
Run Code Online (Sandbox Code Playgroud)

php png text imagettftext

6
推荐指数
2
解决办法
1万
查看次数

php imagettftext字母间距

有没有人有一个绘制带有指定字母间距的ttf字符串(imagettftext)的函数?

我找不到任何内置GD功能,所以我认为应该逐字逐句地添加一些恒定的宽度.

也许有人已经有这样的功能:)

PS.最好的字体是arial.ttf

php gd imagettftext

6
推荐指数
3
解决办法
1万
查看次数

使用php打开OTF字体 - 包括希腊字符

所以,正如标题所说,我的任务是使用选定的.otf字体将给定的短语转换为服务器端的图像(php GD).这个短语不仅包括拉丁字符,还包括希腊语和西里尔字母.

PHP的imagettftext(http://php.net/manual/en/function.imagettftext.php)不适用于.otf字体上的非拉丁字符(看起来与.ttf一样正常).

有线索吗?

编辑:字体需要是.otf

php fonts gd imagettftext

6
推荐指数
2
解决办法
7600
查看次数

使用imagettftext()时,如何处理字体文件不支持的字符?

我在PHP GD库创建的图像中使用Verdana字体.

imagettftext($image, $fontSize, 0, 70, $y, $color, $font, $username );
Run Code Online (Sandbox Code Playgroud)

大多数情况下,imagettftext非常适合字符串.
但是我的一些用户在名字中使用了奇怪的字符/符号.
所以,当我尝试将他们的名字打印到图像时.例如:
在此输入图像描述

该用户使用????????? 符号.所以Verdana无法打印出来.

我用过这个:

$username=iconv('UTF-8', 'ASCII//TRANSLIT', $username);
Run Code Online (Sandbox Code Playgroud)

输出是这样的:
在此输入图像描述

(当前语言环境英语和德语之间的变化,从而可能当前区域无法处理这些字符.?????????)

现在看来似乎是不可能的音译?h,?n而不需要编写一个非常大的str_replace()块.像这样.

  • 所以我想知道是否可以检查字体(Verdana)是否可以显示这些符号.如果其中一个字符不能显示在字符串内,那么我可以将空字符串传递给imagettftext方法.我可以检查字体内支持的字符吗?或者创建一个包含Verdana支持的符号的字符映射,并检查我的字符串是否包含不支持的符号?
    (我认为由于这个问题不可能)

  • 或者也许是另一种解决方案,是否可以使用多种字体imagettftext()
    例如,首先尝试Verdana,如果Verdana没有涵盖那些符号使用Arial sans serif等.

  • 或任何其他解决方案?

编辑:
看起来Verdana在我的文本中不支持这些unicode字符.
Verdana支持的字符:http://www.fileformat.info/info/unicode/font/verdana/grid.htm
Verdana不支持的字符:http://www.fileformat.info/info/unicode/font/verdana/missing.htm

php fonts gd utf-8 imagettftext

5
推荐指数
1
解决办法
2702
查看次数

PHP 函数 imagettftext() 用笑脸写文本

我正在使用 imagettftext 函数在图像上写入文本,但我的文本包含笑脸,它将笑脸替换为方框

这是我的代码:

$black = imagecolorallocate ( $main_img, 0x00, 0x00, 0x00 );
$font_path = "Arial.ttf";
imagettftext ( $main_img, 14, 0, 73, 685, $black, $font_path, $text );
Run Code Online (Sandbox Code Playgroud)

文本示例:

test testt Hello  Those   Mega x ??  Graphic 
Run Code Online (Sandbox Code Playgroud)

我曾尝试更改“Arial Unicode”字体,但未解决问题。

我该如何解决这个问题?

提前致谢。

php imagettftext emoji

5
推荐指数
2
解决办法
3762
查看次数

imagettftext():计算字体大小以确保文本适合图像宽度

我正在使用imagettftext()在图像上写动态文本,我希望它适合我的图像宽度.

如何通过文本长度计算字体大小?

php imagettftext dynamic-content dynamic-image-generation

4
推荐指数
1
解决办法
1万
查看次数

PHP imagettftext部分粗体

我正在训练我的PHP技能来生成图像.我只需要一件不起作用的东西.我不认为这可能是我想要的方式,但应该有另一种方式.我已经拥有的代码是这样的:

<?php
$textSize = 10;
$text = addslashes("Wietse: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed malesuada aliquet dolor, vitae tristique lectus imperdiet nec. Pellentesque et.");
$maxWidth = 448;

//Create image
$im = imagecreate(468, 60);

// Black background and White text
$bg = imagecolorallocate($im, 0, 0, 0);
$textColor = imagecolorallocate($im, 255, 255, 255);

// Split in multiple lines
$words = explode(' ', $text);
$lines = array();
$line = "";
foreach ($words as $word) {
    $box = imagettfbbox($textSize, 0, './arial.ttf', …
Run Code Online (Sandbox Code Playgroud)

php gd imagettftext

4
推荐指数
2
解决办法
1万
查看次数