2013-10-20 59 views
2

保存圖片我用Firemonkey XE5進行拍照並保存到設備。我使用標準動作TakePhotoFromCameraActionon DidFinishTaking get TBitmap。這是確定的,但是當我嘗試存儲使用以在Firemonkey

ImageContainer.Bitmap.SaveToFile(System.IOUtils.TPath.GetDocumentsPath + System.SysUtils.PathDelim + 'myfile.bmp'); 

沒有這幅畫發生。圖像不存儲,但應用程序似乎正在運行 - 我可以拍攝另一張照片。

如何解決這個問題?

回答

0

我以前有同樣的問題。 跟蹤後的SaveToFile功能FMX.Graphix.TBitmap.SaveToFile,然後FMX.Graphix.TBitmapCodecManager.SaveToFile功能,我發現,這個函數返回因爲:

if SameText(ExtractFileExt(AFileName), Descriptor.Extension, loUserLocale) and Descriptor.CanSave then 

如果條件返回False,因爲Descriptor.Extension是名爲.jpg沒有'.BMP'

所以解決方法是使用'.jpg'擴展名爲文件或使用SaveToFile函數中的SaveParams(Default = nil)參數來匹配bmp類型。

+0

Oussama嗨,你好,感謝您的回答,但我不知道我的理解/您的解決方案工程.. 。我將擴展名更改爲jpg,但沒有幫助。 現在我有 ImageContainer.Bitmap.SaveToFile(System.IOUtils.TPath.GetDocumentsPath + System.SysUtils.PathDelim + 'myfile.jpg'); 而且還不行。 你的代碼是什麼?你可以與我分享嗎? –

+0

我的代碼是: 鏡像文件:= System.IOUtils.TPath.Combine(System.IOUtils.TPath.GetSharedDownloadsPath, 'MyImage.jpg'); ImageControl.Bitmap.SaveToFile(ImageFile); 它適用於我。 如果它不適合你,我建議你將它追溯到SaveToFile函數並找出問題所在。 –

1

我有類似的問題,但是,它不是儲蓄的問題。我的問題實際上是設備通過USB連接到我的電腦。我在文件資源管理器中打開設備,我無法看到我剛剛保存的圖片。然後我斷開設備,並重新連接它,打開一個新的文件瀏覽器,有他們在那裏....