我有一个包含大约1000个图片网址的XML文件。我想用PHP创建所有图像的精灵。
我该如何完成?
这是我的代码(我得到致命错误:允许的内存大小......):
<?php
$dest = imagecreatefromjpeg('15000x2000.jpg');
$increasing_width = 0;
$increasing_height = 0;
$xmldata = '1000-images.xml';
$open = fopen($xmldata, 'r');
$content = stream_get_contents($open);
fclose($open);
$xml = new SimpleXMLElement($content);
foreach ($xml->xpath('//image') as $image) {
$src = imagecreatefromjpeg('test/' . $image->picture->attributes() . '.jpg');
if ($increasing_width == '15000') {
$increasing_width = '0';
$increasing_height += 200;
}
imagecopymerge($dest, $src, $increasing_width, $increasing_height, 0, 0, 150, 200, 100);
}
imagejpeg($dest, '15000x2000.jpg');
?>
答案 0 :(得分:1)
您需要增加 memory_limit。
插入代码的开头:
ini_set('memory_limit','128M'); # Default: 128M
“请注意,要没有内存限制,请将此指令设置为-1。 “ - php.net
如果在内存足够后超时,则需要增加 max_execution_time 。
插入代码的开头:
ini_set('max_execution_time', 30); # Default 30
从命令行运行PHP时,默认设置为0. - php.net