加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – StretchBlt HALFTONE == BILINEAR用于所有缩放?

发布时间:2020-12-14 01:54:41 所属栏目:Windows 来源:网络整理
导读:任何人都可以澄清工作站Win32 API的GDI StretchBlt功能是否执行双线性插值以缩放24/32位彩色图像的较大和较小图像?如果没有,是否有一个GDI(而不是GDI)功能呢? SetStretchBltMode fn的设置为HALFTONE,记录如下: HALFTONE Maps pixels from the source rect
任何人都可以澄清工作站Win32 API的GDI StretchBlt功能是否执行双线性插值以缩放24/32位彩色图像的较大和较小图像?如果没有,是否有一个GDI(而不是GDI)功能呢?

SetStretchBltMode fn的设置为HALFTONE,记录如下:

HALFTONE
Maps pixels from the source rectangle into blocks of pixels in the destination rectangle. The average color over the destination block of pixels approximates the color of the source pixels.

我已经看到references (see follow-up to first answer)在缩小图像时执行双线性插值,但是在放大时没有明确的答案.

我注意到Windows Mobile CE SDK does support a BILINEAR flag – 与HALFTONE注释完全相反(仅适用于扩展).

请注意,对于这个问题的范围,我没有兴趣追求GDI(有许多插值选项),OpenGL,DirectX等作为替代品,所以请不要打扰关于这些其他API或备用的后续行动图像库.

我真正希望找到的是一些明确的MS / MSDN或其他高质量文档,它们清楚地记录了Win32(桌面)GDI行为的这种行为.

同时,我会尝试一些比较GDI和Direct2D的实验(它确实有一个明确的标志来控制它)并发布我的发现.

谢谢!

解决方法

HALFTONE模式基于改变定义的正方形上的转换阈值,在图像上执行非常块状的半色调抖动.我从未见过这种情况会被认为是最佳选择.

COLORONCOLOR是彩色图像的最佳模式,但正如您所见,它并没有给出很好的效果.

GDI不支持双线性模式(除了您发现的Windows Mobile CE之外).缩小图像时,双线性的天真实现并不是很好,因为它只是试图在两个相邻的输入像素之间进行插值,而不是试图从更大的区域进行绘制.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读