我正在尝试为隐写术项目隐藏.gif内的消息。我已经将输入的gif转换为BufferedImages的ArrayList并应用了隐写算法。但是,我遇到了将BufferedImages的ArrayList转换回.gif的问题。在从原始gif图像元数据获取帧之间的原始延迟之后,我使用了GifSequenceWriter类将BufferedImages数组转换为新的.gif。
File encoded_img = new File("output.gif");
ImageOutputStream output = new FileImageOutputStream(encoded_img);
GifSequenceWriter writer = new GifSequenceWriter(output, frames.get(0).getType(), delayTimeMS, true);
writer.writeToSequence(frames.get(0));
for(int k=1; k<frames.size()-1; k++) {
writer.writeToSequence(frames.get(k));
}
writer.close();
output.close();
但是,生成的.gif看起来真的很糟糕,并且我保存了带有或不带有隐写算法的单个帧,它们看起来还不错。您可以在此处查看原始图像的示例,保存的10个帧以及生成的.gif 。
有没有更好的方法来在Java中创建.gifs?提前致谢。
九州编程
相关分类