【问题标题】:Delphi XE7 Bitmap size to big message on AndroidDelphi XE7位图大小到Android上的大消息
【发布时间】:2015-02-13 08:30:55
【问题描述】:

当我在我的 Android 手机上拍照时,我的 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。同样在调试期间它确实保存了图片,但由于某种原因它无法正确关闭操作。奇怪的是,该代码也适用于三星平板电脑,但不适用于索尼手机。

【问题讨论】:

  • 哪个语句导致了崩溃? image1.Bitmap.Assign(Image); ?删除所有其他代码以找出答案。
  • 无,它会在操作本身上崩溃。我尝试调试,但它在运行方法中的任何代码之前给出了消息。
  • 也许应该在 saveparams 上运行一些初始化程序来初始化其他字段?
  • 如果您的应用程序崩溃 -which?- 操作本身,那么您为什么要发布该代码?
  • @greenapps 因为该操作是 TActionList 的标准操作,无法显示任何代码。

标签: android image delphi bitmap delphi-xe7


【解决方案1】:

我有一个表单的 ScaleBy 属性,这就是问题所在。重命名属性后,我不再遇到问题了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-01
    • 2015-04-02
    相关资源
    最近更新 更多