2016-02-29 145 views
2

我正在使用Delphi XE8。为什么我无法在画布上画画?

我加载背景图片到我的图片:

var 
    Png: TPngImage; 
begin 
    Png := TPngImage.Create; 
    try 
    Png.LoadFromResourceName(HInstance, 'background'); 
    Image1.Picture.Graphic := Png; 
    finally 
    Png.Free; 
    end; 

这工作好了,但是当我尝试绘制图像的画布上(我试过LineTo)我得到这个错误:

Can only modify an image if it contains a bitmap

我该如何在已经加载图片的图片上绘图?

回答

4

答案可以在你引用的错误信息中找到:

Can only modify an image if it contains a bitmap.

因此,创建一个位图对象,PNG图像分配给该位图,然后分配该位图到TImage控制的Picture

+2

或者开始使用Graphics32库(http://graphics32.org/wiki/),它没有这样的限制。更不用说Graphics32库在绘图时支持硬件加速,所以如果需要更复杂的绘图,它可能会非常有用。 – SilverWarior

+0

灿烂!谢谢。 –

+0

@SilverWarior我看不到硬件加速到何处。 –