【问题标题】:Memory limit on imagecreatetruecolor()?imagecreatetruecolor()的内存限制?
【发布时间】:2017-11-15 13:02:25
【问题描述】:

我需要创建一个 23040 x 18688 像素的图像。当我编写一个简短的脚本时,我收到以下错误:

致命错误:第 4 行 C:\xampp\htdocs\new\bvg\index.php 中允许的内存大小为 1073741824 字节已用尽(尝试分配 92160 字节)

为什么当 92160 字节远低于我分配给它的 1GB 时它会引发错误?这是我的代码:

ini_set('max_execution_time', 3000);
ini_set('memory_limit','1024M');

$newImage = imagecreatetruecolor(23040,18688);

谢谢!

【问题讨论】:

  • 它尝试分配比以前多 92160 个 个字节,这使它超过了允许的内存大小(所以你事先超过了 1073649664 个字节)
  • 因为您已经使用了1073741824 并试图分配一个额外的92160 将它放在memory_limit 之上
  • 请注意,您需要至少 23040 x 18688 x 4 字节(1,722,286,080 字节,或 1,681,920k 或 1,682M)的内存仅用于图像,加上脚本和任何其他所需的内存您使用的变量......这超过了您配置的最大 1024M
  • imagecreatetruecolor PHP 页面上有一些用户贡献的注释可以帮助您设置内存限制 - 例如this one
  • 我试过 ini_set('memory_limit', '-1'); 并没有帮助。

标签: php


【解决方案1】:

尝试使用ini_set('memory_limit', '-1'); 这将删除当前脚本中的内存限制

【讨论】:

  • 虽然正确 - 这确实删除了内存列表 - 它没有回答有关在 PHP 中创建 23040x18688 图像需要什么的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-26
  • 2012-01-06
  • 1970-01-01
  • 1970-01-01
  • 2014-07-16
  • 2011-02-25
相关资源
最近更新 更多