imagettftext 给出奇怪的结果
imagettftext giving weird results
尝试在 php 中的现有图像上绘制一些文本,但得到奇怪的结果。
我有这张图片
我试图用白色文本在上面画一个数字,但我得到了这个结果
代码如下:
<?php
$font = "files/fonts/open_sans/OpenSans-Regular-webfont.ttf";
$image = imagecreatefrompng('images/icons/marker_icon.png');
$white = ImageColorAllocate($image, 255,255,255);
imagettftext($image, 1, 1, 1, 1, $white, $font, $_GET['count']);
header("content-type: image/png");
imagepng($image);
imagedestroy($image);
?>
第一次在图片上画画,所以我不知道我做错了什么。
问题出在你的形象上,我不确定是怎么回事或为什么,但它被搞砸了。我在照片编辑器中打开它并使用不同的名称将其重新保存为 PNG 并且它有效。此外,您的文本不会显示,因为您的字体大小设置为 1,并且它从 xy 1,1 开始。它应该反映如下:
<?php
$font = "files/fonts/open_sans/OpenSans-Regular-webfont.ttf";
$image = imagecreatefrompng('images/icons/marker_icon.png');
$white = ImageColorAllocate($image, 255,255,255);
imagettftext($image, 15, 0, 10, 35, $white, $font, $_GET['count']);
header("content-type: image/png");
imagepng($image);
imagedestroy($image);
?>
想通了。由于我的图像有很多透明度,我不得不将 imageAlphaBlending
设置为 true
:
<?php
$font = "files/fonts/open_sans/OpenSans-Regular-webfont.ttf";
$image = imagecreatefrompng('images/icons/marker_icon.png');
$white = ImageColorAllocate($image, 255,255,255);
imageAlphaBlending($image, true);
imageSaveAlpha($image, true);
imagettftext($image, 15, 0, 10, 35, $white, $font, $_GET['count']);
header("content-type: image/png");
imagepng($image);
imagedestroy($image);
?>
尝试在 php 中的现有图像上绘制一些文本,但得到奇怪的结果。
我有这张图片
我试图用白色文本在上面画一个数字,但我得到了这个结果
代码如下:
<?php
$font = "files/fonts/open_sans/OpenSans-Regular-webfont.ttf";
$image = imagecreatefrompng('images/icons/marker_icon.png');
$white = ImageColorAllocate($image, 255,255,255);
imagettftext($image, 1, 1, 1, 1, $white, $font, $_GET['count']);
header("content-type: image/png");
imagepng($image);
imagedestroy($image);
?>
第一次在图片上画画,所以我不知道我做错了什么。
问题出在你的形象上,我不确定是怎么回事或为什么,但它被搞砸了。我在照片编辑器中打开它并使用不同的名称将其重新保存为 PNG 并且它有效。此外,您的文本不会显示,因为您的字体大小设置为 1,并且它从 xy 1,1 开始。它应该反映如下:
<?php
$font = "files/fonts/open_sans/OpenSans-Regular-webfont.ttf";
$image = imagecreatefrompng('images/icons/marker_icon.png');
$white = ImageColorAllocate($image, 255,255,255);
imagettftext($image, 15, 0, 10, 35, $white, $font, $_GET['count']);
header("content-type: image/png");
imagepng($image);
imagedestroy($image);
?>
想通了。由于我的图像有很多透明度,我不得不将 imageAlphaBlending
设置为 true
:
<?php
$font = "files/fonts/open_sans/OpenSans-Regular-webfont.ttf";
$image = imagecreatefrompng('images/icons/marker_icon.png');
$white = ImageColorAllocate($image, 255,255,255);
imageAlphaBlending($image, true);
imageSaveAlpha($image, true);
imagettftext($image, 15, 0, 10, 35, $white, $font, $_GET['count']);
header("content-type: image/png");
imagepng($image);
imagedestroy($image);
?>