代码改变世界

随笔分类 -  图像处理

我的第一个MFC小项目(4)之 位图转换(续)

2011-12-20 20:22 by 捣乱小子, 2330 阅读, 收藏, 编辑
摘要: 非常感谢Imageshop的指正,代码有修改,主要是:计算8位位图像素位使用了更高效的整点运算;去除多余的变量检测。求网友们支招:在32位位图中有Alpha值,在转换成8位灰阶位图的时候可以直接省略吗? 在《我的第一个MFC小项目(3)之 位图转换》中,有关于将24位的彩色位图转换为8位的灰阶位图,发散一下就很容易可以得到32位位图彩图转换为8位的灰阶位图,看图:32位位图多出一个Alpha字节,用来描述图片的透明度,根据这一特性,可以将Alpha特意忽略,然后将紧跟其后的RGB按照《我的第一个MFC小项... 阅读全文

我的第一个MFC小项目(3)之 位图转换

2011-12-08 16:20 by 捣乱小子, 3455 阅读, 收藏, 编辑
摘要: 关于位图的格式,文件头,信息头,颜色表,像素位等等,我在以前在《我的第一个MFC小项目(2)》有过简单的介绍,当时还操VISIO自己画图呢,不过当时真的非常非常的模糊,甚至还没有灰度图和彩图的概念。没有捧着一本书认真研究,纯粹是完成项目过程当中遇到什么不懂的就直接google...欢迎拍砖,欢迎讨论。8位位图除了可以索引彩色图像外,也可以是灰阶图像,相信更多的是用于灰度的图像,既然有8位的灰阶图像,也就是说从白到黑分成256种渐变,那16位灰阶图像也是存在的,只不过从白到黑分成2^16种渐变;但这是一种很大的浪费我觉得,因为灰阶图像应用不是非常广,在一些专业领域或许会用到。而如今PC下的更多的 阅读全文

我的第一个MFC小项目(2)之 初涉位图

2011-11-23 18:24 by 捣乱小子, 1052 阅读, 收藏, 编辑
摘要: BitmapSize=bmp.bmWidthBytes*bmp.bmHeight; 在这一次实验当中,涉及到了比较多的BMP图片的学习,包括基本的组成和操作(放大缩小等)。下面是DIB的文件格式:这就是BMP图片的组成,可以当成是他的数据结构,这里面就存放了显示图片需要的数据。结构体内的数据比较复杂,但是在这里讲几点。offsetbit 为文件头到像素为的位移;imagesize为像素位的大小;size为整个DIB文件的大小。文件头当中,offsetbit 的计算其实很简单,就是文件头和信息头的大小加起来(当然默认是24位的位图),但是因为他们是固定大小的的所以比较简单。imagesize计算 阅读全文

我的第一个MFC小项目(1)之 初来咋到

2011-11-18 23:46 by 捣乱小子, 1953 阅读, 收藏, 编辑
摘要: 虽然是小项目,但是还是有点挑战性的,因为从来没有做过一个比较正式的项目;之前在编程过程当中,都是比较粗糙,想到什么就写什么,在没有一个系统的架构前提之下,虽可谓倚马可待,但bug很多,多到自己想法都没有了,最后不得不丢下个“四不像”的一堆代码。找个借口原谅自己就是自觉阅读之前写下的代码,然后认真总结和分析,谈谈自己的收获。其实也没什么,就一个处理图像的东西,很多的东西已经被sdk封装了,其实你能使用sdk到游刃有余的地步,那也是一种强的表现了,别被别人的闲言冷语冷落到“认为sdk没出息”。重要的不是你学会了sdk什么的,重要的是你在完成一个任务的过程当中的收获,more or less。 功能 阅读全文