代码改变世界

随笔分类 -  MFC Project

玩转位图(bitmap)2

2012-11-08 01:12 by 捣乱小子, 1240 阅读, 收藏, 编辑
摘要: 2012年11月8日9:25:47 已上传源代码和可执行文件2012年11月8日1:03:01 深夜断网,不能上传源码和可执行文件,明日早起补上。喜欢的童鞋们先收藏。小丸子查看大图:http://daoluan.net/blog/wp-content/uploads/2012/11/Maruko.jpg接上篇:http://daoluan.net/blog/enjoy-bitmap/上篇中发布的程序中不支持png,jpg,gif等主流的图片格式的玩转,只支持24位位图。这一次对软件做以下更新:提供png,jpg(jpeg),tif(tiff)三种图片格式(抱歉gif尚未解决)的支持根据图片的大 阅读全文

玩转位图(bitmap)

2012-11-01 12:51 by 捣乱小子, 1862 阅读, 收藏, 编辑
摘要: 这是别人的网页版。http://photo2text.com/乔帮主年前加入一个项目小组,只要是做图像处理的软件,组内分配第一个任务便是熟悉位图。http://www.cnblogs.com/daoluanxiaozi/tag/MFC%E5%B0%8F%E9%A1%B9%E7%9B%AE/,但后来不知道为什么,没有呆下去。大三刚开学的时候,@杨海坡 换了个QQ头像,大致的效果如下(原图见about页面):图片中有小小的方块,每个方块内对应一个字符。YY下,结合对位图的了解,可以动手实现,“这个可以有”。png,jpg,gif等都不懂,所以从位图下手,来实现图片的处理。思路:读bmp文件读取一个 阅读全文

MFC DLEdit 设计属于自己的编辑框

2012-02-04 13:00 by 捣乱小子, 13527 阅读, 收藏, 编辑
摘要: 起因 无意间看到了大牛们写的自定义编辑框控件,于是找了个时间自己写了一个,加深了对MFC消息机制和一些功能的了解。分析 先来看一张QQ2011的登录窗口,发现当鼠标悬停在编辑框上的时候,会有悬停边框高亮,这样给用户一种很绚丽的视觉享受,但我相信大家每天都上q,从而都忽略了这些美丽,细心分析一下,QQ的每一个器官甚至一根毛都是经过精心设计的。当编辑框失去输入焦点,而编辑框内文本为空的时候,会有灰色提示文本,提示用户输入。 还可以有好多的自定编辑框功能,美化我们的编辑框。具体实现和细节 在之前《MFC自动隐藏》这篇文章中的技术细节有与DLEdit相似的地方,那就是鼠标悬停的判断。当鼠标悬停... 阅读全文

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

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

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

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

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

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

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

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