我正在研究可以从视频中检测人脸并将其转换为GIF格式的“人脸检测”主题,以便任何人都可以分享自己的表达。
我编写了方便的算法来实现这一目标。 让我解释一下它是如何工作的:
第1步:第一个视频会根据提供的fps将其转换为帧,这会将其转换为图片数量。
step2:现在我有框架形式的图像,他们有面孔和android面部检测api或任何其他的东西,如果你有建议我。它会检测图像中的面孔。
第3步:裁剪这些图像和脸只会坚持使用此图像。
第4步:获取这些有问题的文件并将其转换为GIF文件。
所以step4正是我的问题是:我们如何将这些歪曲的图像转换为gif formate。
我很感激你能给我的任何信息
答案 0 :(得分:1)
对于步骤4,请参阅此解决方案。
https://github.com/nbadal/android-gif-encoder
这是这篇文章的Android版本。
http://www.jappit.com/blog/2008/12/04/j2me-animated-gif-encoder/
要使用此类,这是一个生成GIF字节数组的示例辅助方法。请注意,getBitmapArray()函数是一种立即返回图像适配器中所有Bitmap文件的方法。因此输入是一个适配器中的所有Bitmap文件,输出是一个字节数组,您可以写入该文件。
public byte[] generateGIF() {
ArrayList<Bitmap> bitmaps = adapter.getBitmapArray();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
AnimatedGifEncoder encoder = new AnimatedGifEncoder();
encoder.start(bos);
for (Bitmap bitmap : bitmaps) {
encoder.addFrame(bitmap);
}
encoder.finish();
return bos.toByteArray();
}
要使用此功能,请执行以下操作,然后将文件保存到SD卡中。
FileOutputStream outStream = null;
try{
outStream = new FileOutputStream("/sdcard/generate_gif/test.gif");
outStream.write(generateGIF());
outStream.close();
}catch(Exception e){
e.printStackTrace();
}
(归功于生活者)