微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 内联生成的图像超过长度

我正在使用PHP生成图像,这很好用.但是我无法显示这些图像:

我的图像生成器是一个PHP文件,它需要大量的参数和数据加载来生成图像.由于必须传递给生成器的数量过多,使用GET容器对我来说不起作用,因此数据通过POST请求发送.该请求的结果是原始图像数据.

我在用

$result = post_request('http://myurl.com/graphx/generator.PHP', $data);
if($result['status'] == 'ok') {
    echo "<img src=\"data:image/png;base64,".
        base64_encode($result['content'])."\"/>\n";
}

显示我的图像.这适用于非常小的图像,但随着它们变大(例如300px * 300px),图像不再显示(它似乎在某处被切割).

我的方法合理吗?

是否有针对尺寸问题的解决方法

更新:

当我让生成器将图像保存到文件时,创建的文件包含我想要的图像.此外,如果将我的生成器转换为GET生成器,以下代码也可以正常工作:

$data = http_build_query($data);
echo "<img src=\"http://myurl.com/graphx/get_generator.PHP?{$data}\"/>\n";

所以它肯定是POST请求或转换为base64格式的问题.我正在使用POST请求,如here所示.

解决方法:

我建议你的网页结构如下:

主页:

<img src="imageproxy.PHP" />

imageproxy.PHP

<?PHP
$result = post_request('http://myurl.com/graphx/generator.PHP', $data);
header('Content-type: image/png');
if($result['status'] == 'ok') {
    echo $result['content']);
} else {
    readfile('error_message_image.png');
}

而不是尝试使用数据uris和长度限制,只需让您的代理脚本输出实际的原始图像数据,并将其作为客户端html中的图像处理.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐