我嘗試以下兩個選項:如何使用的ImageIO多個BufferedImages保存到一個文件
1.
BufferedImage Buffered_Image;
MemoryCacheImageOutputStream MemoryCache_OutputStream =
new MemoryCacheImageOutputStream(new FileOutputStream("C:/Test.mov",false));
while (notFinished) // Main recording loop.
{
Buffered_Image=robot.createScreenCapture(); // Capture Screen image.
try { ImageIO.write(Buffered_Image,"png",MemoryCache_OutputStream); }
catch (Exception e) { e.printStackTrace(); }
}
2.
BufferedImage Buffered_Image;
ImageWriter writer;
try
{
ImageOutputStream ios=ImageIO.createImageOutputStream(new File("C:/Test.mov"));
Iterator writers=ImageIO.getImageWritersByFormatName("png");
while (writers.hasNext())
{
writer=(ImageWriter)writers.next();
writer.setOutput(ios);
Out(writer.toString()+" canInsertImage : "+writer.canInsertImage(0));
// Got this: [email protected]
// canInsertImage : false
}
}
catch (Exception e) { }
cntPics=0;
while (notFinished) // Main recording loop.
{
Buffered_Image=robot.createScreenCapture(); // Capture Screen image.
writer.write(null,new IIOImage(Buffered_Image,null,null),null);
if (writer.canInsertImage(-1)) {
// Append image at highest index
writer.writeInsert(-1,new IIOImage(Buffered_Image,null,null),null);
} else Out("Writer can’t append image Id : "+cntPics);
cntPics++;
}
兩個人都沒有工作,有什麼將多個PNG圖像保存到文件的正確方法?
編輯:
你說得對,我發現所謂的Krut,可以錄製屏幕會話java程序,但它使用的JPEGImageEncoder,圖像質量並不像我想的那麼好,所以我想知道是否可以使用ImageIO對序列進行編碼。
如果ImageIO無法做到這一點,我的下一個問題是有沒有一個獨立的開源PNGImageEncoder,我可以用它來編碼它?我知道有開源的PNGImageEncoders,但他們往往會糾結於項目中,很難從中獲得所有支持文件,有什麼想法?謝謝!
哦,我從來沒有聽說過它,它可以記錄PC上的屏幕會話和聲音?如果您正在PC上觀看帶有聲音的視頻,可以將它錄製到電影中嗎?或者,如果您想製作一個關於如何通過鼠標點擊來使用PC程序的教學視頻,並且您可以用麥克風錄製語音,那麼它可以記錄下來嗎? – Frank 2008-12-23 21:30:01