谁能给一段代码或者思路流程? 学习图像处理,第一步就卡了。谁能给一个不用Timage类读取bmp图像的例子.或者有相关方法的提示也可。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ??你问什么啊?好象是这样image1.picure:=Timage.loadfromfile("");反正是有一个方法的不记得对不对了以L开头的方法 bmp图像一般不加压缩,你完全可以打开二进制图像文件,从其中一个一个像素地来读.当然,要了解一下文件的结构,包括文件的结构信息和图像的结构信息. 可以看看下面的贴:http://topic.csdn.net/t/20041105/14/3525171.html其中有用delphi(和C)读取bmp文件数据的代码. to Kvci & sdzeng: 都说了不用Tbitmap的.....to zzwu: 我知道这些,要不也不会用bmp结构来练习了。但是在具体应用中就出现问题了。 问题如下: 1 硬盘上数据和内存中怎么对应的?是不是内存中也存在一个'BM'标志 2 我要获取图像上(0,1)点的像素的rgb,应该在硬盘上读取那一个位置的值?从第55个开始?还是从那里开始?有什么办法分析一下?谢谢各位,我刚开始涉及此方面,请回答稍微仔细点。 呵呵,不是我不明白,是你没说清楚建议你看一下TBitmap的源代码和这篇文章http://www.qcxy.hb.cn/skagon/blog/index.asp?id=106读取BMP文件的顺序是:用stream从硬盘读取文件到内存,从内存里读取字节,整理成GDI需要的结构,由GDI函数,CreatePalette创建调色板,用CreateDIBitmap创建位图对象。根据图像数据计算出像素值,再“画”到屏幕设备上的过程,是由GDI完成的,基本上不用我们操心。如果想知道屏幕上的像素具体对应到文件中哪几个字节,需要了解BMP文件的结构,建议你有空看看这篇文章http://www.youthbar.com/more.asp?name=stoneedu&id=312 1 硬盘上数据和内存中怎么对应的?是不是内存中也存在一个'BM'标志 [答]在内存中没有必要保存"BM"标致.2.图像上(0,1)点的像素的rgb,应该在硬盘上读取那一个位置的值?从第55个开始? [答]第55个开始存放图像数据,但如果图像是4位或位的index模式,则还得存放调色版数据. 另外, bmp图像数据是倒放的,也就是说,第一个读出的点,是图像最下面 一行的第一个像素,而不是顶上面一行的像素数据. 上面漏了一个'8'字:1 硬盘上数据和内存中怎么对应的?是不是内存中也存在一个'BM'标志 [答]在内存中没有必要保存"BM"标致.2.图像上(0,1)点的像素的rgb,应该在硬盘上读取那一个位置的值?从第55个开始? [答]第55个开始存放图像数据,但如果图像是4位或8位的index模式,则还得存放调色版数据. 另外, bmp图像数据是倒放的,也就是说,第一个读出的点,是图像最下面 一行的第一个像素,而不是顶上面一行的像素数据. 还是不行啊,自己写的函数读出来的图像一团糟。to zzwu: 如果bmp是没有调色板,都是4byte/像素的吗? 那么这个时候(0,1)像素应该在什么地方? activex控件的关联图标! QuickRep主/明细表问题 dbgrid 显示问题。 请问大家一个简单的UPDATE问题,急,马上结贴 如何利用DELPHI中的错误信息? 使用TDATABASE 与动态连接库的问题 这样在delphi中制作安装程序 如何建立索引实现主表控制从表?在线急救!!!!!!!!!!! 请问键盘记录的软件怎么做? 急!!!!DELPHI的ADO控件 如何将文本数据导入DBGridEh 怎样在Intraweb上下载文件??????我改怎么办啊?????????急死我了
你问什么啊?
好象是这样
image1.picure:=Timage.loadfromfile("");
反正是有一个方法的
不记得对不对了以L开头的方法
当然,要了解一下文件的结构,包括文件的结构信息和图像的结构信息.
都说了不用Tbitmap的.....to zzwu:
我知道这些,要不也不会用bmp结构来练习了。但是在具体应用中就出现问题了。
问题如下:
1 硬盘上数据和内存中怎么对应的?是不是内存中也存在一个'BM'标志
2 我要获取图像上(0,1)点的像素的rgb,应该在硬盘上读取那一个位置的值?从第55个开始?还是从那里开始?有什么办法分析一下?谢谢各位,我刚开始涉及此方面,请回答稍微仔细点。
http://www.qcxy.hb.cn/skagon/blog/index.asp?id=106读取BMP文件的顺序是:
用stream从硬盘读取文件到内存,从内存里读取字节,整理成GDI需要的结构,由GDI函数,CreatePalette创建调色板,用CreateDIBitmap创建位图对象。
根据图像数据计算出像素值,再“画”到屏幕设备上的过程,是由GDI完成的,基本上不用我们操心。如果想知道屏幕上的像素具体对应到文件中哪几个字节,需要了解BMP文件的结构,
建议你有空看看这篇文章
http://www.youthbar.com/more.asp?name=stoneedu&id=312
1 硬盘上数据和内存中怎么对应的?是不是内存中也存在一个'BM'标志 [答]在内存中没有必要保存"BM"标致.2.图像上(0,1)点的像素的rgb,应该在硬盘上读取那一个位置的值?从第55个开始? [答]第55个开始存放图像数据,但如果图像是4位或位的index模式,则还得存放调色版数据.
另外, bmp图像数据是倒放的,也就是说,第一个读出的点,是图像最下面
一行的第一个像素,而不是顶上面一行的像素数据.
另外, bmp图像数据是倒放的,也就是说,第一个读出的点,是图像最下面
一行的第一个像素,而不是顶上面一行的像素数据.
to zzwu:
如果bmp是没有调色板,都是4byte/像素的吗?
那么这个时候(0,1)像素应该在什么地方?