【问题标题】:bitmap conversion delphi xe5位图转换delphi xe5
【发布时间】:2013-11-20 16:25:00
【问题描述】:

我有一个功能,可以使用带有图标的 android 安装的应用程序。该函数提取 Jdrawable 并将其转换为 Jbitmap(为了测试此函数,我将此 jbitmap 保存到文件中,一切正常),但如果我尝试将此 jbitmap 转换为 Tbitmap,我在此行有访问冲突:

如果 Result.Map(TMapAccess.maWrite, BitmapData) 那么

function JBitmapToBitmap(const AImage: JBitmap): TBitmap;
var
  ImageData: TJavaArray<Integer>;
  BitmapData: TBitmapData;
  Width, Height: Integer;
begin
  Assert(AImage <> nil);
  Width := AImage.getWidth;
  Height := AImage.getHeight;
  ImageData := TJavaArray<Integer>.Create(Width * Height);
  AImage.getPixels(ImageData, 0, Width, 0, 0, Width, Height);
  if Result.Map(TMapAccess.maWrite, BitmapData) then    <--- access violation
  try
    Result := TBitmap.Create(Width, Height);
    Move(ImageData.Data^, BitmapData.Data^, Width * Height * SizeOf(Integer));
  finally
    Result.Unmap(BitmapData);
  end
  else
    Result := nil;
end;

我确定 jBitmap 没有损坏,因为如果我将 Jbitmap 保存到文件中,我可以看到它很好。

提前致谢

【问题讨论】:

    标签: java android delphi bitmap firemonkey


    【解决方案1】:

    您应该在 Map 方法调用之前创建 Result 对象

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-04
      • 1970-01-01
      相关资源
      最近更新 更多