delphi 如何修复“无法将TSkGraphic分配给TBitmap”

rks48beu  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(146)

我在我的VCL应用程序中使用Skia4Delphi。我有一个Image1(TImage)组件。它支持加载webp图像文件,这要归功于Skia4Delphi。但是,当我尝试将webp图像转换为TBitmap时,我会得到“无法将TSkGraphic分配给TBitmap”错误。PNG或JPEG文件没有错误消息。
下面是一个示例代码:

uses System.Skia, VCL.Skia;

var
  Bitmap: TBitmap;
begin
  Image1.Picture.LoadFromFile('c:\image.webp'); // No error
  Bitmap := TBitmap.Create;
  try
    Bitmap.Assign(Image1.Picture.Graphic); // Error for webp files
  finally
    Bitmap.Free;
  end;
end;

字符串
如何修复错误并将webp图像加载到TBitmap?

bkkx9g8r

bkkx9g8r1#

Robert以评论形式写的建议有效。

uses System.Skia, VCL.Skia;

var
  Bitmap: TBitmap;
begin
  Image1.Picture.LoadFromFile('c:\image.webp'); // No error
  Bitmap := TBitmap.Create;
  try
    //Bitmap.Assign(Image1.Picture.Graphic); // Error for webp files
    Bitmap.Width:=Image1.Picture.Width;
    Bitmap.Height:=Image1.Picture.Height;
    Bitmap.Canvas.Draw(0,0,Image1.Picture.Graphic);
  finally
    Bitmap.Free;
  end;
end;

字符串

相关问题