我正在尝试使用此配置在 VDS 上裁剪动画 gif:
~800MHz 和 256 内存
它不工作。它只是吃掉内存和处理器,大约一分钟后没有响应。
http://i192.photobucket.com/albums/z228/Somebi/no-responce.jpg
在本地机器上,我创建了一个具有 256 RAM 的虚拟机。一切正常,但我必须承认有点慢......但我在本地机器上有 Duo Core 7400。
我尝试使用以下设置限制 VDS 上的内存使用:
$gif = new Imagick($s['src']);
set_time_limit(0);
$gif->setResourceLimit(Imagick::RESOURCETYPE_MEMORY,32);
$gif->setResourceLimit(Imagick::RESOURCETYPE_MAP,64);
// echo $gif->getResourceLimit(Imagick::RESOURCETYPE_MEMORY);
// echo $gif->getResourceLimit(Imagick::RESOURCETYPE_MAP);
// echo $gif->getResourceLimit(Imagick::RESOURCETYPE_FILE);
// echo $gif->getResourceLimit(Imagick::RESOURCETYPE_DISK);
// echo $gif->getResourceLimit(Imagick::RESOURCETYPE_AREA);
// exit;
$gif = $gif->coalesceImages();
foreach($gif as $frame){
$frame->cropImage($s['params']['w'], $s['params']['h'], $s['params']['x'], $s['params']['y']);
$frame->setImagePage($s['params']['w'], $s['params']['h'], 0, 0);
}
$gif->writeImages($s['dest_path'] .'/'. $fullname,true);
但是我可以限制处理器的使用吗?
有什么解决慢 VDS 的方法吗?:|
感谢大家!
更新:
print_r(getimagesize($s['src']));
exit;
$gif = new Imagick($s['src']);
etc...
Array
(
[0] => 530
[1] => 150
[2] => 1
[3] => width="530" height="150"
[bits] => 8
[channels] => 3
[mime] => image/gif
)
更新2:
pathinfo($s['src'])
(
[dirname] => images/tmp
[basename] => 43138a0723d6ae0799564bd6acb8c7b83c8df483.gif
[extension] => gif
[filename] => 43138a0723d6ae0799564bd6acb8c7b83c8df483
)
update3: 如何调试 imagick 扩展?:(
找到了这个包: http: //fr2.rpmfind.net/linux/RPM/fedora/updates/testing/13/i386/debug/php-pecl-imagick-debuginfo-3.0.0-5.fc13.i686.html
有人试过吗?