在Firemonkey中拍摄并保存图片

时间:2013-10-20 21:03:52

标签: image delphi camera save firemonkey

我使用Firemonkey XE5拍照并保存到设备。我使用标准操作TakePhotoFromCameraActionon DidFinishTaking get TBitmap。没关系,但是当我尝试使用

存储这张图片时
ImageContainer.Bitmap.SaveToFile(System.IOUtils.TPath.GetDocumentsPath + System.SysUtils.PathDelim + 'myfile.bmp');

什么都没发生。图像未存储,但应用程序似乎正在运行 - 我可以拍摄另一张照片。

如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

我有类似的问题,但是,这不是一个保存问题。我的问题实际上是设备通过USB连接到我的电脑。我在文件资源管理器中打开设备,我将无法看到刚刚保存的图片。然后我断开设备并再次连接它,打开一个新的文件资源管理器,然后在那里......

答案 1 :(得分:0)

之前我遇到过同样的问题。 在 FMX.Graphix.TBitmap.SaveToFile 中跟踪 SaveToFile 功能后,再到 FMX.Graphix.TBitmapCodecManager.SaveToFile 函数,我发现这个函数返回 False ,因为:

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

if 条件返回False,因为Descriptor.Extension为'。jpg'不是'。bmp'

因此解决方案是对文件使用'。jpg'扩展名,或者在SaveToFile函数中使用SaveParams(Default = nil)参数来匹配bmp类型。