65.9K
CodeProject 正在变化。 阅读更多。
Home

通过调用 API 在 dotNet 中创建具有 alpha 混合 PNG 图像的动画

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.87/5 (94投票s)

2005年10月19日

viewsIcon

108534

downloadIcon

7409

本文展示了具有alpha混合功能的PNG图像在创建动画方面的优势,并通过调用API演示了如何在.NET Framework应用程序中使用PNG图像。

Sample Image - revolution.jpg

引言

许多编码员(包括我以前)都放弃了处理PNG,因为让PNG背景图像平滑工作并不容易。然而,PNG是一种非常好的图像格式,它允许你使用带有alpha混合功能的透明度。本文将向您展示如何使PNG正常工作以及在创建动画时使用它的优势。

内部秘密

clsTungPngAnimation继承自抽象类clsTungAnimation,因为我们打算在clsTungPngAnimationclsTungBmpAnimation中拥有许多相同的函数。所有这些类都可以在clsTungAnimation.cs中找到。

frmAnimation.cs(用于PNG)和frmBmpAnimation.cs(用于BMP)是图片帧将出现的地方。如果我们使用PNG,则必须使用此函数来使窗体透明,但仍能保留PNG图片的alpha混合效果。

protected override CreateParams CreateParams
{
    get 
    { 
        CreateParams cp = base.CreateParams;
        cp.ExStyle |= 0x00080000; //WS_EX_LAYERED    
        return cp;
    }
}

(此函数位于frmAnimation.cs内部)

clsBitmapTransparent.cs用于为窗体创建PNG透明背景。

clsBitmapRegion.cs用于通过加载BMP图像为窗体创建区域,以便图像可以显示为透明。

Trung tam di dong qui tu cac cua hang lon nhat Vietnam

© . All rights reserved.