imagettftext给出了奇怪的结果

时间:2016-03-01 02:06:22

标签: php drawing imagettftext

尝试在php中已经存在的图像上绘制一些文本,但得到奇怪的结果。

我有这张图片enter image description here

我试图用白色文字在其上绘制一个数字,但我得到了这个结果enter image description here

以下是代码:

<?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);


?>

第一次在图像上绘图,所以我不知道我做错了什么。

2 个答案:

答案 0 :(得分:0)

问题在于你的形象,我不知道是怎么回事,也不知道为什么会搞砸。我在一个照片编辑器中打开它并用另一个名称作为PNG重新保存它并且它有效。此外,您的文字不会显示,因为您的字体大小设置为1,它从xy 1,1开始。它应反映如下:

class Complex{
public:
    Complex();
    Complex(double, double);
    double r, i;
    void read(istream &in);
    void display(ostream &out) const;
    double real, imaginary;

PHP Manual imagettftext

答案 1 :(得分:0)

想出来。由于我的图片有很多透明度,因此我必须将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);
        ?>