使用PHP和XML创建1000个图像的CSS精灵

时间:2012-07-09 11:27:54

标签: php xml sprite

我有一个包含大约1000个图片网址的XML文件。我想用PHP创建所有图像的精灵。

  • XML文件大小约为30 MB
  • 图像大小约为15kb

我该如何完成?

这是我的代码(我得到致命错误:允许的内存大小......):

<?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');

?>

1 个答案:

答案 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