StretchBlt(stretchblt 图片淡化)
StretchBlt 图像不清晰
调用StretchBlt之前,先调用SetSTretchBltMode(hdc, HALFTONE);
对放大和缩小都有效。
还有一点要注意,就是要用全色的图像。不然的话就算你调用了SetSTretchBltMode也不会有好效果。
stretchblt函数怎么用
函数从源矩形中复制一个位图到目标矩形,必要时按目标设备设置的模式进行图像的拉伸或压缩。
x:逻辑单元x轴左上角坐标;
y:逻辑单元y轴左上角坐标;
nWidth: 设备矩形宽度;
nHeight:设备矩形高度;
pSrcDC: 源设备上下文;
xSrc :源矩形 x轴左上角坐标;
ySrc: 源矩形y 轴左上角坐标;
Specifies the x-coordinate (in logical units) of the upper-left corner of the source rectangle.
nSrcWidth:源矩形宽度;
nSrcHeight:源矩形高度
dwRop:指定要进行的光栅操作。
vc中StretchBlt怎么实现图片的旋转
StretchBlt实现不了,它只能实现绽放,要用GetPixel()和SetPixel()函数来做,基本法是,你创建一个图片的内存DC,按照你想要旋转的方式来重新写入各个像素的颜色,例如,你把图片的右下角的点的颜色写入到内存图片DC的左上角,再把最石下角左边的那个点写到左上角第二个位置,如此通过循环后,再把图片内存DC 显示出来,就能实现旋转。
不推荐你用GDI来做复杂的图片操作,用GDI+做起来要简单得多!
CDC类中的StretchBlt与BitBlt之间的区别
简单的说,只有一个:
StretchBlt可以拉伸放缩位图(也可以1:1,就和BitBlt一样了),BitBlt不可以。
当然,在效率上BitBlt更高一些。
什么叫做像素锯齿
一张JPEG的图片,你把它放大,放到很大后你就会发现全是马赛克(也就是正方形放开组成的),比如说图片中有个人物,你放大后发现人物的边缘全部是正方形方块组成的锯齿形状,那就是像素锯齿。像素越高,图片就可以放到更大,图片也就更大,越低,图片的大小也就越小!