当我在我的Android手机上拍照时,我的XE7应用程序崩溃了,它说位图大小很大。但我使用之前使用过的代码并且工作正常。这是关于在android / iOS上拍照的embarcadero的例子。
我的代码如下:
procedure TForm1.TakePhotoFromCameraAction1DidFinishTaking(
Image: TBitmap);
var
saveParams:TBitmapCodecSaveParams;
directory,name:String;
begin
image1.Bitmap.Assign(Image);
saveParams.Quality := 100;
{$IFDEF ANDROID}
directory := TPath.GetPicturesPath;
name := '/RoomId:'+ fRoomId.ToString()+' '+DateTimeToStr(Now)+'.png';
{$ENDIF}
{$IFDEF IOS}
directory := TPath.GetDocumentsPath;
name := '/RoomId:'+ fRoomId.ToString()+' '+DateTimeToStr(Now)+'.png';
{$ENDIF}
Image.SaveToFile(directory+name,@saveParams);
end;
任何人都知道它为什么不起作用?
更新 我确信代码是正确的。我在另一个应用程序中测试过它。还尝试调试操作并在调试期间继续重复TTakePhotoFromCameraAction.CustomTextChanged。此外,在调试期间,它确实保存了图片,但由于某种原因无法正确关闭操作。奇怪的是,该代码也适用于三星平板电脑,但不适用于索尼手机。
答案 0 :(得分:0)
我有一个表单的ScaleBy属性,这就是问题所在。重命名属性后,我不再有问题了。