为何StretchBlt()将图片缩小 颜色会不对
来源:互联网 发布:出租屋宽带网络拓扑图 编辑:程序博客网 时间:2024/06/02 23:07
為何StretchBlt()將圖片縮小 顏色會不對
在window中要貼圖常用到StretchBlt() function
然而這function 有個問題 就是圖片縮小時 顏色會錯誤
這個問題很好解 只需要呼叫SetStretchBltMode() 即可
CPaintDC dc;
CDC sdc;
// 圖片的載入放中間
dc.SetStretchBltMode(STRETCH_DELETESCANS);
dc.StretchBlt(0,0,100,100,&sdc,0,0,100,100,SRCCOPY);
先解釋一下StretchBlt() 的作用模式
當StrecthBlt() 的目標比來源小時 必須要將一些點去掉
他的預設做法 是將要去掉的點與旁邊的點做AND運算
這也就是為什麼 顏色會錯誤的原因
至於為什麼預設做法是要用AND運算呢
這是因為 如果這張圖是黑底白字的話 如果要砍點 則會有可能把字的線條給砍掉
這樣縮小之後的圖 上面的文字便會壞掉
如果是使用AND運算的話 便可以保留上面的文字
不過缺點就是圖的顏色會錯掉
我們可以使用SetStretchBltMode() 將處理方法改成STRETCH_DELETESCANS
這樣他便會直接將不要的點給砍掉 就不會有顏色錯誤的問題發生
另外 也可以換成 STRETCH_HALFTONE
half tone 會將要刪掉的像素跟周圍中和起來
這樣可得到較好的畫質 不過速度也會變慢
- 为何StretchBlt()将图片缩小 颜色会不对
- MD5 为何会算不对?
- stretchblt为什么会造成图片失真
- StretchBlt缩小扩大失真
- 将图片按比例缩小显示
- halcon 窗口图像颜色和原始图片颜色不对应
- CImage缩小图片时颜色失真
- StretchBlt()压缩图片失真
- 将颜色合成图片
- Unity导入图片为何会失真
- iPhone 将图片缩小成指定大小
- iPhone 将图片缩小成指定大小
- 将图片等比例缩小不影响图片的分辨率
- 解决StretchBlt()压缩图片失真
- 解决StretchBlt()压缩图片失真
- 将颜色转化为图片
- 为何不对房价“狠”一点?
- StretchBlt
- ArcSDE For MSSQL的数据库备份恢复
- 能让校长发疯的大学毕业小结
- 禁止迅雷上传数据
- 在Web.config配置文件中自定义配置节点
- 十年前后校园事件之大不同
- 为何StretchBlt()将图片缩小 颜色会不对
- [双语阅读]英国中学和大学开设性健康咨询室
- [双语阅读]威尔•史密斯获选票房吸金王
- 可怜的大袋子/无用之人
- have a tiger by the tail 骑虎难下
- 获取汉字的拼音简码方法
- [英语阅读]新年伊始日本商人神社求好运
- 用INF文件删除顽固或正在使用的文件
- 利用sudo命令为Ubuntu分配管理权限