【发布时间】:2011-07-25 02:57:37
【问题描述】:
我使用 PHP 动态生成了一个非常大的图像并输出到浏览器。 (它宽 5000 像素,高 1000-2000 像素。这是我网站上的每日用户活动图)。
问题是现在情节太大了,PHP脚本出现内存耗尽错误(生成的PNG本身非常小),因此我无法获取图像。
有没有办法使用 GD 以 PNG 格式将这个大图像分成多个部分输出?
(ps:我运行站点的主机使用安全模式,所以我无法修改配置,我认为他们使用的是默认的PHP安装。)
EDIT1:这是一个管理脚本。除了我,没有用户看到它。
EDIT2:示例图片可以在这里看到:http://users.atw.hu/calmarius/trash/wtfb2/x.png (我还可以选择按 IP 地址对曲目进行分组。)
每个用户+IP 对都有自己的 24 小时轨迹。每个绿色标记都表示一个用户活动。如您所见,此图像可以逐轨输出。并且不需要一次输出和生成整个东西。
这个网站将是一个在线策略游戏,我想在未来使用这个图表来简化多账户的检测。 (试图通过注册多个帐户而不是只有 1 个帐户来获得优势的用户。)但这是一个不同的问题。
我正在使用 PHP 脚本,因为我懒得从数据库中导出请求日志,下载它并将数据提供给可以为我绘制绘图的程序。 ;)
【问题讨论】:
-
指定你得到什么样的错误???...
-
“致命错误:第67行的getactivityplot.php中允许的内存大小为25165824字节耗尽(试图分配40840字节)”(故意增加图像大小以引发它。)
-
为什么要生成比您的任何用户可能正在运行的最高屏幕分辨率大很多倍的图像?
-
没有用户看到它。这是一个管理脚本。我每天都下载它并在图像查看器中打开它,然后滚动它。
-
您是否 (a) 想解决内存耗尽错误或 (b) 生成内存受限的图像?
标签: php image plot gd large-data