将签名转换为图像PHP

时间:2017-04-26 17:56:56

标签: php

背景

我正在将PHP应用程序从5.3更新到7.目前我的目标是5.6 首先。

应用程序的一部分将签名转换为图像。当该文件运行时,我收到此错误。

错误

  

致命错误:允许的内存大小为33554432字节   (尝试分配20480字节)在 signature-to-image.php 上   第 43

这是它在错误中引用的行。

代码

$img = imagecreatetruecolor($options['imageSize'][0] * $options['drawMultiplier'], $options['imageSize'][1] * $options['drawMultiplier']);

问题

有人能澄清这个问题吗?

我认为这与服务器配置有关,而不是PHP问题的版本。任何帮助,将不胜感激。

array(5) {
  ["imageSize"]=>
  array(2) {
    [0]=>
    int(373)
    [1]=>
    int(95)
  }
  ["bgColour"]=>
  array(3) {
    [0]=>
    int(255)
    [1]=>
    int(255)
    [2]=>
    int(255)
  }
  ["penWidth"]=>
  int(2)
  ["penColour"]=>
  array(3) {
    [0]=>
    int(0)
    [1]=>
    int(0)
    [2]=>
    int(0)
  }
  ["drawMultiplier"]=>
  int(12)
}
<br />
<b>Fatal error</b>:  Allowed memory size of 33554432 bytes exhausted (tried to allocate 20480 bytes)

1 个答案:

答案 0 :(得分:2)

您的php脚本似乎需要比 php.ini memory_limit设置中指定的内存更多的内存。

您有2个选项:

1 - 将 php.ini memory_limit设置编辑为更高的值,然后重新启动apache

2 - 将以下内容添加到您的脚本中:

ini_set('memory_limit', '128M') # try several values until you find the appropriate one, no more no less.