2011-09-23 79 views
0

我一直在開發一個簡單的桌面應用程序,使用adobe air,html和javascript將數據保存到sqlite(而不是flash builder,沒有flex)。有沒有一種方法可以從我的攝像頭捕捉圖像並使用這些技術進行保存?如果不能做什麼來實現結果?提前致謝。土坯空氣攝像頭問題

回答

0

這可以做到,但它絕對不是性能友好的:)你會得到巨大的字符串對象(更大的圖像=更大的字符串)。但我會告訴你我是如何做到的。

首先,您必須從網絡攝像頭獲取BitmapData。這可以通過創建一個BitmapData對象,並使用其draw()來完成 - 功能,如下圖所示:

var bmpd:BitmapData = new BitmapData(webcam.width, webcam.height); 
bmpd.draw(webcam); 

有了這個的BitmapData,您可以致電的getPixels(),它會返回的ByteArray。

var ba:ByteArray = bmpd.getPixels(); 

此ByteArray現在已準備好進行序列化。由於您正在存儲,最好將其存儲爲字符串。這通常由Base64完成。您可以使用this class來實現的base64編碼,如下圖所示:

var baseString:String = Base64.encodeByteArray(ba); 

上面的字符串可以存儲在你的sqlite的,是你的形象的一個字符串表示。圖片越大,轉換所需的時間就越長。

要從sqlite中獲取圖像,可以使用我給你的Base64類的decodeByteArray()方法,並結合一個加載器對象。示例如下所示。

var baseString = StringFromYourSQLite; 
var ba:ByteArray = Base64.decodeToByteArray(baseString); 

var imageLoader:Loader = new Loader(); 
imageLoader.loadBytes(ba); 
stage.addChild(imageLoader); 

這就是你如何存儲和檢索數據庫中的圖像。

+0

TY Michiel ..如果我只是需要在使用時間戳重命名並存儲imagename之後將圖像作爲jpg存儲在文件夾中,該怎麼辦?我可以將bitmapdata轉換爲jpg格式嗎? –

+0

看看這個鏈接,它有源代碼將bitmapdata轉換爲jpg(並且圖像名稱由您自己選擇)。 http://weblog.cahlan.com/2006/10/save-out-bitmapdata-to-jpg.html –