简体   繁体   English

从imageReader写回修改后的图像

[英]Write back modified image from imageReader

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. 我从动画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);        
    }    

I'll be glad for any help. 我会很高兴为您提供任何帮助。

Tanks @StanislavL for link ( https://community.oracle.com/thread/1264385 ) in comment, it was really helpful. Tanks @StanislavL在评论中提供了链接( https://community.oracle.com/thread/1264385 ),这确实很有帮助。 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);    
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 是否可以将图像从Android手机传递到处理中的Java Servlet并取回修改后的图像 - Is it possible to pass an image from Android phone to Java Servlet from processing and get back the modified image 使用OpenCV从Android Camera2将YUV转换为RGB ImageReader时出现问题,输出图像为灰度 - Problem converting YUV to RGB ImageReader from android Camera2 using OpenCV, output image is in grayscale 获取ImageReader解析DICOM图像时出错 - Error getting ImageReader parsing DICOM image 如何从ImageReader android获取InputStream - How to get InputStream from ImageReader android 使用ImageReader保存时,Android camera2预览图像无序 - Android camera2 preview image disorder when saved using ImageReader javax.imageio.ImageReader一遍又一遍地加载相同的图像 - javax.imageio.ImageReader loading the same image over and overagain 将jar中的ImageReader添加/删除到ImageIO-registry - Add/remove ImageReader from jar to ImageIO-registry Java:在没有ImageReader的情况下从动画GIF获取帧 - Java: get frames from animated GIF without ImageReader 如何编写与源图像具有相同压缩设置的修改图像 - How do I write a modified image with the same compression settings as the source image 如何将文件从Android写入PC并返回? - How to write files from Android to PC and back?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM