[英]Is it possible to pass an image from Android phone to Java Servlet from processing and get back the modified image
[英]Write back modified image from imageReader
我从动画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);
}
我会很高兴为您提供任何帮助。
Tanks @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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.