2

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

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

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

如何解决这个问题?

4

2 回答 2

1

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

于 2014-02-04T19:13:34.003 回答
1

我以前也有同样的问题。在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 类型。

于 2013-10-21T11:57:19.520 回答