从 imageReader 写回修改后的图像 [英] Write back modified image from imageReader
本文介绍了从 imageReader 写回修改后的图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我从动画 gif 中读取分离的图像,我只需要在 frames[i]
中对它们进行更改,然后将它们设置回文件并与 writer 一起保存为新文件.
I read separated images from animated gif and I need just make change with them in frames[i]
and then set them back to file and save with writer as new file.
File file = new File("gif1.gif");
ImageReader reader = ImageIO.getImageReadersBySuffix("GIF").next();
ImageInputStream in = ImageIO.createImageInputStream(file);
reader.setInput(in);
File output = new File("k.gif");
ImageWriter writer = ImageIO.getImageWritersBySuffix("GIF").next();
ImageOutputStream out = ImageIO.createImageOutputStream(file);
writer.setOutput(out);
int numImages = reader.getNumImages(true);
BufferedImage[] frames = new BufferedImage[pocetObrazku];
for (int i = 0; i < numImages; i++)
{
BufferedImage image = reader.read(i);
frames[i] = reader.read(i);
}
我很乐意为您提供帮助.
I'll be glad for any help.
推荐答案
Tanks @StanislavL 链接 (https://community.oracle.com/thread/1264385) 在评论中,真的很有帮助.这是我的解决方案:
Tanks @StanislavL for link (https://community.oracle.com/thread/1264385) in comment, it was really helpful. There is my solution:
File file = new File("gif1.gif");
ImageReader reader = ImageIO.getImageReadersBySuffix("GIF").next();
ImageInputStream in = ImageIO.createImageInputStream(file);
reader.setInput(in);
int numImages = reader.getNumImages(true);
BufferedImage[] frames = new BufferedImage[pocetObrazku];
File fileOut = new File("k.gif");
fileOut.createNewFile();
ImageWriter iw = ImageIO.getImageWritersByFormatName("gif").next();
ImageOutputStream ios = ImageIO.createImageOutputStream(fileOut);
iw.setOutput(ios);
iw.prepareWriteSequence(null);
for (int i = 0; i < numImages ; i++) {
BufferedImage image = reader.read(i);
frames[i] = reader.read(i);
IIOMetadata metadata = reader.getImageMetadata(i);
IIOImage ii = new IIOImage(image, null, metadata);
iw.writeToSequence(ii, (ImageWriteParam) null);
}
这篇关于从 imageReader 写回修改后的图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文