我从 stackoverflow 中获取的一个简单的 PHP 脚本会生成一个具有透明背景的 PNG,在其上写入一些文本,然后直接将其输出到客户端浏览器:
$font = 25;
$string = 'My Text';
$im = @imagecreatetruecolor(300, 300);
imagesavealpha($im, true);
imagealphablending($im, false);
$white = imagecolorallocatealpha($im, 255, 255, 255, 127);
$red = imagecolorallocate($im, 255, 0, 0);
imagefill($im, 0, 0, $white);
$lime = imagecolorallocate($im, 204, 255, 51);
imagettftext($im, $font, 0, 0, 30, $red, "fonts/tt0588m_.ttf", $string);
header("Content-type: image/png");
imagepng($im);
imagedestroy($im);
范围是获得一个简单的服务,该服务基于通过 URL 传递给它的参数来提供图像,例如 Google Charts(例如这个 QR 代码图像)。
到目前为止,一切都很好,除了如果我点击上面代码生成的图像并想要保存它,浏览器不会将其识别为 PNG 图像,而是PHP 脚本(另存为类型选择器有这个选项仅),与 Google Charts 示例相反,其中资源被明确标识为 PNG 文件。
如何通过浏览器实现正确的资源识别?