Delphi Android 上的大消息 XE7 位图大小
Delphi XE7 Bitmap size to big message on Android
当我在 Android phone 上拍照时,我的 XE7 应用程序崩溃了,它说位图尺寸过大。但是我使用了以前使用过的代码并且运行良好。来自embarcadero关于在android/iOS.
拍照的例子
我的代码如下:
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。同样在调试期间它确实保存了图片但由于某种原因它无法正确关闭操作。奇怪的是代码也适用于三星平板电脑但不适用于索尼 phone.
我的表单有一个 ScaleBy 属性,这就是问题所在。重命名后 属性 我不再有问题了。
当我在 Android phone 上拍照时,我的 XE7 应用程序崩溃了,它说位图尺寸过大。但是我使用了以前使用过的代码并且运行良好。来自embarcadero关于在android/iOS.
拍照的例子我的代码如下:
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。同样在调试期间它确实保存了图片但由于某种原因它无法正确关闭操作。奇怪的是代码也适用于三星平板电脑但不适用于索尼 phone.
我的表单有一个 ScaleBy 属性,这就是问题所在。重命名后 属性 我不再有问题了。