我正在使用 imagecreatetruecolor() 在 PHP 中创建 PNG 图像。我经常需要根据图像的大小(以像素为单位的尺寸)通过 ini_set() 增加我的 memory_limit。
到目前为止,根据我期望接收的最大值分配多少内存一直是试验/错误,但我知道这些值也可能更高。
图像中的所有内容都是使用以下方法绘制的:
imagefill();
imagecolorallocate();
imagerectangle();
imagefilledrectangle();
imagettftext();
最终输出是通过:
imagepng();
imagedestroy();
目前我将它设置为 512MB,它可以处理我期望的大部分最大尺寸(3178 x 2878),但如果我绘制非常小的东西,我也试图不过度分配内存。
有没有一种方法可以用来以像素为单位获取图像尺寸并计算应分配的所需内存?显然,我需要为处理开销添加一些额外的东西,但我需要弄清楚实际图像创建使用了多少内存。
谢谢!