GDIPlus混合函数使用alpha乘以预产生的rgb通道来提高效率。然而,通过alpha进行预乘是非常昂贵的,因为您必须逐个处理每个像素。有人有一个优化的函数预乘alpha位图吗?
它似乎是一个很好的候选人SSE大会。这里有人想分享它的实施吗?我知道这是艰苦的工作,所以这就是我问的原因。我不是想偷你的工作。如果可以的话,你可以全部考虑分享。
编辑:我不想通过软件做alpha混合。我试图用alpha来预乘图像中每个像素的每个颜色分量。我这样做是因为alpha混合是由公式完成的:dst = src src.alpha + dst(1-dst.alpha)但是AlphaBlend Win32函数确实实现了dst = src + dst(1-dst.alpha )为优化原因。为了得到正确的结果,你需要在调用AlphaBlend之前使src等于src * src.alpha。
由于我对装配知之甚少,所以我需要花一些时间才能写出,所以我问是否有人想分享它的实现。 SSE会很好,因为在这篇论文中,通过软件进行alpha混合的收益是300%。
您应该尝试GDI。您可以使用DIB(在内存中)预乘位图alpha。它的速度非常快。 http://stackoverflow.com/questions/307348/how-to-draw-32-bit-alpha-channel-bitmaps – dns 2015-08-12 23:02:19