Bitblt操作在Delphi中没有显示结果

时间:2017-06-30 05:59:23

标签: delphi bitmap

我有一个Image1(TImage)和一个Mask&Sprite(TImage),在设计时分配了B / W图像。现在我想在Bit1上使用BitBlt Mask和Sprite来获得透明图像:

BMPmask := TBitmap.Create;
BMPsprite := TBitmap.Create;
try
  BMPmask.Assign(Mask.Picture.Bitmap);
  BMPsprite.Assign(Sprite.Picture.Bitmap);
  BitBlt(Image1.Canvas.Handle, 50, 50, 96, 96, BMPmask.Canvas.Handle, 0, 0, SrcAnd);
  BitBlt(Image1.Canvas.Handle, 50, 50, 96, 96, BMPsprite.Canvas.Handle, 0, 0, SrcInvert);
finally
  BMPmask.Free;
  BMPsprite.Free;
end;

但是当我运行我的程序时没有任何显示。我做错了什么?

1 个答案:

答案 0 :(得分:2)

不确定如何初始化Image(问题中没有意义 - 也许它没有被初始化?)。简单示例按预期工作:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.schwarzerritter.remotecontroll">

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="Remotecontroll"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

    <activity
        android:name="com.example.schwarzerritter.MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar"
        android:screenOrientation="sensorPortrait">

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".Navigation" />
    <activity android:name=".Car_doors" />
    <activity android:name=".Air_con_fill_gas"/>
</application>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

</manifest>