- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 32 位位图(或 Bitmap32)上传输 32 位图像(带 alpha channel 的 PNG)。
我不知道如何告诉函数混合图像而不是 bliting 它。就像使用 AlphaBlend 而不是 BitBlt 一样,我需要让这个函数混合图像而不是简单的 blit。
这是我的例子:
ABitmap 是 TBitmap32 (GR32) 的类型,但对于带有 32 位调色板的常规 TBitmap,结果相同。
ABitmap.SetSize(GetWidth, GetHeight);
SetStretchBltMode(ABitmap.Handle, COLORONCOLOR);//HALFTONE);
ABitmap.Clear($FFFFFFFF); { Here I try to erase background with white color, so that new image is blit over white surface }
StretchDIBits(
ABitmap.Handle,
0, 0,
GetWidth, GetHeight,
0, 0,
GetWidth, GetHeight,
FreeImage_GetBits(Dib),
FreeImage_GetInfo(Dib)^,
DIB_RGB_COLORS,
SRCCOPY); // --- SRCAND etc. produce not good results
最佳答案
StretchDIBits()
没有任何阿尔法混合的概念。您必须首先将您的 PNG 传输到一个临时的 32 位位图,确保根据需要设置其 alpha channel ,然后 AlphaBlend()
临时位图到您的目标位图。或者,您可以只使用 AlphaBlend()
如果 PNG 已经使用 32 位位图在内存中布局,则 PNG 直接到目标位图。
关于delphi - StretchDIBits 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10543203/
我想在 32 位位图(或 Bitmap32)上传输 32 位图像(带 alpha channel 的 PNG)。 我不知道如何告诉函数混合图像而不是 bliting 它。就像使用 AlphaBlend
我正在使用 StretchDIBits 打印图像,但当图像由于某种未知原因处于特定尺寸时打印失败。 图像数据以 24 位 BGR 格式从其他一些图像源加载到一个无符号整数数组中。我已经验证图像和缓冲区
我正在使用 Win32Api,我正在寻找一种将 BGR(或 RGB、BGRA、RGBA...)数据加载到窗口的方法。 从左下角开始向上编织,就像这一段。 逐渐向下直到右下角结束,StretchDIBi
我正在使用 gdi c++,如果我绘制大图像(例如 7000*5000),StretchDIBits 函数有时会失败。它什么也没画。 GetLastError() 表示系统资源不足。任何人都可以解释为
玩 MFC,似乎在绘制 PixelFormat8bppIndexed 时出错了。 示例 PixelFormat8bppIndexed: 使用其他格式一切正常。 我认为问题出在: (*pBitmapIn
我想在 HDC 上绘制一个相同大小的 dib。我在用 :des 和 src 大小相同。 ::StretchDIBits(hdc, des.left,des.top
我正在使用 DrawImage 方法在图形对象上绘制位图图像,但是图像数量很多,因此绘制需要花费太多时间。我在这个论坛上读到,使用 StretchDIBits 可以减少绘图时间。 我通过调用 Draw
我的应用程序是在 Delphi 6 中开发的。由于后台处理和大量数据(消耗大约 60MB - 120MB 物理内存),这是一个资源密集型应用程序。该应用程序的功能之一是在进行某些处理后创建条形码图像。
我的应用程序是在 Delphi 6 中开发的。由于后台处理和大量数据(消耗大约 60MB - 120MB 物理内存),这是一个资源密集型应用程序。该应用程序的功能之一是创建条形码图像并打印它们。如果用
(这与 How would I load a PNG image using Win32/GDI (no GDI+ if possible)? 上的问题有关。) 大家好 我想知道,假设您有一个嵌入 I
我是一名优秀的程序员,十分优秀!