谁能澄清工作站 Win32 API 的 GDI StretchBlt函数是否执行双线性插值以缩放 24/32位彩色图像的较大和较小图像?如果没有,是否有执行此操作的 GDI(不是GDI+)函数?
SetStretchBltMode fn 有一个设置HALFTONE ,记录如下:
HALFTONE 将源矩形中的像素映射到目标矩形中的像素块。目标像素块上的平均颜色近似于源像素的颜色。
我已经看到参考资料(请参阅第一个答案的后续内容),这在缩小图像时执行双线性插值,但没有明确回答放大时会发生什么。
我注意到Windows Mobile CE SDK 确实支持 BILINEAR 标志- 这与 HALFTONE 注释完全相反(仅适用于放大)。
请注意,对于这个问题的范围,我对追求 GDI+(它有许多插值选项)、OpenGL、DirectX 等作为替代品不感兴趣,所以请不要为这些其他 API 或替代品的后续行动而烦恼图像库。
我真正希望找到的是一些明确的 MS/MSDN 或其他高质量文档,这些文档清楚地记录了 Win32(桌面)GDI 行为的这种行为。
同时,我将尝试一些比较 GDI 与 Direct2D 的实验(它确实有一个明确的标志来控制这一点)并发布我的发现。
谢谢!