草庐IT

StretchBlt

全部标签

c++ - StretchBlt 收缩损坏

我正在使用Windows(7和XP-均为32位)并使用C++进行编码我正在从外部源接收位图。这些位图具有固定分辨率(384x288)收到位图后,我需要根据可变大小的布局调整它的大小,因此我目前正在使用StretchBlt来执行这些任务。如果我将位图的大小调整为更大的屏幕图像,效果很好。但是,如果我将传入的位图缩小到较小的版本以放置在屏幕上,我会在图像上出现一些奇怪的“拳击”类型的效果。在以下示例中,三个面板中的每一个的源图像都是相同的。但是左手两个(调整得更小)都对它们产生了拳击/线条效果。对于实际的StretchBlt调用,我这样做:memcpy(at_TempPointer[Por

c++ - 适当结合StretchBlt和TransparentBlt,可以正确创建透明位图

简介及相关信息:最近,我在SO中提出了一个关于正确缩放位图的问题,以便保持图片的质量:Bitmaplosesqualitywhenstretched/shrinkedonbuttonsbackground.我尝试采纳评论中的建议,使用`StretchBlt,所以我制作了一个小的演示程序。在我将拉伸(stretch)模式设置为BLACKONWHITE后,它确实提高了位图的清晰度。我想尝试使位图的某些颜色(例如黑色)透明。以前用过TransparentBlt,现在不知道怎么用问题:为了保持画面的清晰度,我需要在内存DC中StretchBlt,拉伸(stretch)模式为BLACKONWHI

Windows StretchBlt API 性能

我为使用多个StretchBlt和StretchDIBits调用的DDB绘图操作计时。而且我发现,完成时间与目标窗口大小成比例地增加/减少。对于900x600窗口,它需要大约5毫秒,但对于1920x1080,它需要长达55毫秒(源图像为1280x640)。似乎Stretch..API不使用任何硬件加速功能。源图像(实际上这是临时绘图Canvas)是使用CreateDIBSection创建的,因为我需要为绘制的每一帧生成(拉伸(stretch)和合并的)位图像素数据。。p>让我们假设,WindowsGDI是没有希望的。那么有希望的替代方案是什么?我考虑了D3D、D2D和WIC方法(写入W

windows - StretchBlt HALFTONE == BILINEAR 是否适用于所有缩放?

谁能澄清GDIStretchBlt工作站Win32API的函数执行双线性插值以缩放到两个24/32位彩色图像的大图像和小图像?如果没有,是否有执行此操作的GDI(不是GDI+)函数?SetStretchBltModefn有一个设置HALFTONE,记录如下:HALFTONEMapspixelsfromthesourcerectangleintoblocksofpixelsinthedestinationrectangle.Theaveragecoloroverthedestinationblockofpixelsapproximatesthecolorofthesourcepixels