php imagick提取gif帧
有做黄反图片识别的需求,之前的接口只能检查静态图片,因此考虑解析GIF图片的每一帧为静态图片,再抽样提交检测。
在PHP里需要用imagick库实现,网上还没真找到现成的代码,因此把代码贴在这里供参考:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php $file_src = "./1.gif"; $image = new Imagick($file_src); $frames = $image->coalesceImages(); echo '帧数:' . count($frames); foreach ($frames as $i => $frame) { $frame->setImageFormat("jpg"); $content = $frame->getImageBlob(); if ($i == 0) { file_put_contents("./2.gif", $content); } //$frame->writeImage("pic_" . $i . ".jpg"); } $frames->deconstructImages(); ?> |
上面$content是图片的内容,我只将第一张图片写到了磁盘上,可以自行查阅上述API进一步满足自身业务需求。
另附GIF理论学习文章一篇,我的灵感来源于它。
如果文章帮助您解决了工作难题,您可以帮我点击屏幕上的任意广告,或者赞助少量费用来支持我的持续创作,谢谢~

牛逼