gpt4 book ai didi

java - 从 imageReader 写回修改后的图像

转载 作者:行者123 更新时间:2023-11-30 03:28:33 25 4
gpt4 key购买 nike

我从动画 gif 中读取了分离的图像,我只需在 frames[i] 中对它们进行更改,然后将它们设置回文件并使用 writer 保存为新文件。

    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);
}

我很高兴获得任何帮助。

最佳答案

坦克@StanislavL 评论中的链接(https://community.oracle.com/thread/1264385),这真的很有帮助。我的解决方案是:

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);
}

关于java - 从 imageReader 写回修改后的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29624947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com