【问题标题】:Using GD on PHP does not work - only black square在 PHP 上使用 GD 不起作用 - 只有黑色方块
【发布时间】:2018-06-01 08:06:32
【问题描述】:

我正在尝试在我的服务器 (Debian 4.9.88-1+deb9u1) 上的 PHP 7.2.5 上使用 GD 绘制一个简单的图像。

我的源代码看起来很简单:

<?php
    error_reporting(E_ALL);

    header("Content-type: image/png");
    $string = $_GET['text'];
    $im     = imagecreatefromjpeg("test.jpg");
    $orange = imagecolorallocate($im, 220, 210, 60);
    $px     = (imagesx($im) - 7.5 * strlen($string)) / 2;
    imagestring($im, 3, $px, 9, $string, $orange);
    imagepng($im);
    imagedestroy($im);

?>

test.jpg 位于同一文件夹中。 PHP 版本:7.2.5
我在日志文件中看不到任何相关内容。

GD 在服务器上被激活:

结果如下:

Result of the previous shown source code

【问题讨论】:

  • 您的代码在 PHP 7.1.18 上适用于我。尝试使用不同的 JPG 文件。
  • @timclutton 我现在用类似的图片尝试了它 - 没有成功。这可能是一个权利相关的问题吗?还是必须是“JPEG”而不是“JPG”?
  • 这将是我的第一个猜测。尝试一个简单的单行脚本,例如:var_dump(file_get_contents('test.jpg')); 并确认您的脚本从文件中读取数据。
  • 对于我的 image.jpg 它显示 bool(false) 但对于另一个 jpg 显示内容。但是当我将 777 设置为权限时没有任何变化。
  • 没关系...image.jpg 的输出看起来像:link

标签: php gd php-7.2


【解决方案1】:

通过以下答案解决了问题: header('Content-Type: image/png'); not working anymore?

问题是我的 .php 文件不是 ANSI 格式,而是 UTF-8 格式,在将其转换为 ANSI 后它可以工作。

【讨论】:

    猜你喜欢
    • 2015-09-29
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    • 2015-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    相关资源
    最近更新 更多