CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  API

在线等!!!在VB中如何用写文件的方法生成一个BMP位图文件

楼主kittyflower(kitty)2004-05-04 20:35:46 在 VB / API 提问

在VB中要生成一个BMP位图文件,要求向位图文件中写入文件头等一些相关的信息来生成这个位图文件,这需要调用API函数吗.在VC中是先调用了一些结构,在VB中好像没有那些文件头信息的结构啊,该怎么办啊  
  谢谢 问题点数:20、回复次数:10Top

1 楼BitBlt(Raster Operater)回复于 2004-05-04 20:50:09 得分 3

api浏览器里有。  
  bitmapfileheader  
  bitmapinfoheader  
  rgbquad  
  bitmapinfoTop

2 楼kittyflower(kitty)回复于 2004-05-04 21:07:12 得分 0

在VB里直接调用它们就可以吗?是用什么API函数调用啊  
  谢谢Top

3 楼BitBlt(Raster Operater)回复于 2004-05-05 03:40:35 得分 4

不用API.  
  用文件操作的那几条语句就行了.  
  注意bmicolors(255)   as   rgbquad  
  此处一定要加上255,原来没有的.Top

4 楼boywhp()回复于 2004-05-05 08:36:39 得分 5

Dim   bmpFileHeader   As   BITMAPFILEHEADER  
          Dim   lRet   As   Long,   OF   As   OFSTRUCT   ',   OV   As   OVERLAPPED  
          With   bmpFileHeader  
                  .bfType   =   &H4D42                 'BM  
                  .bfReserved1   =   0  
                  .bfReserved2   =   0  
                  .bfSize   =   CLng(m_pitch)   *   m_height  
                  .bfOffBits   =   LenB(bmpFileHeader)   +   LenB(bmpinfo)  
                  bmpinfo.bmiHeader.biHeight   =   -bmpinfo.bmiHeader.biHeight  
          End   With  
           
          lRet   =   OpenFile(FileName,   OF,   OF_WRITE   Or   OF_CREATE)  
          WriteFile   lRet,   bmpFileHeader,   14,   14,   ByVal   0&  
          WriteFile   lRet,   bmpinfo,   44,   44,   ByVal   0&  
          WriteFile   lRet,   ByVal   m_ptr,   bmpFileHeader.bfSize,   bmpFileHeader.bfSize,   ByVal   0&  
          CloseHandle   lRet  
           
          Open   FileName   For   Binary   As   #1  
          Put   #1,   ,   bmpFileHeader                                           'Becase   Of   Vb's   Data   Type   Bug!  
          Close   #1  
   
  可以保存为BMP文件,但是是上下是反的Top

5 楼kmzs(.:RNPA:.山水岿濛)回复于 2004-05-05 08:48:55 得分 2

上下是反的。。。。。。Top

6 楼0qr0413356(王鹤)回复于 2004-05-05 09:01:20 得分 2

王丽你好:  
  我有问题但不会发贴子,所以利用你的信箱用一下,打扰一下。不好意思了!Top

7 楼0qr0413356(王鹤)回复于 2004-05-05 09:05:21 得分 0

王丽你好:  
  我有问题但不会发贴子,所以利用你的信箱用一下,打扰一下。不好意思了!  
  联系方式:qr0413356@126.com  
  大家帮忙了,谢谢了!!!!!Top

8 楼boywhp()回复于 2004-05-05 10:56:07 得分 2

m_ptr   是图像数据的首地址Top

9 楼kittyflower(kitty)回复于 2004-05-05 12:19:40 得分 0

谢谢上面各位的回复  
  m_ptr图像的首地址在哪里定义的,新生成的一个位图文件应该给该文件分配空间,该怎么分配啊!Top

10 楼boywhp()回复于 2004-05-05 13:22:21 得分 2

m_pitch为一行的字节数  
  一般24位的颜色占用3个字节,m_pitch=3*图像宽度  
  一般可以把图像存放在二维数组里data(w*3-1,h-1)  
  m_ptr=varptr(data(0,0))   '有可能有问题  
  或者直接使用  
  WriteFile   lRet,data(0,0)   ,   bmpFileHeader.bfSize,   bmpFileHeader.bfSize,   ByVal   0&Top

相关问题

  • 用VB生成XML文件
  • VB 可以生成 EXE 文件吗?
  • 用vb如何生成XML文件
  • 用vb生成word文件,怎么用
  • VB 如何生成XML文件头
  • 如何,各根据bmp文件径,生成 HBITMAP位图???
  • 用ADODB.Stream生成的BMP文件无法打开,恳请指点!
  • VB在编译后生成的.OBJ文件是什么文件,可否删除
  • ★★★ SQLServer生成文件 ★★★
  • ★★★ SQLServer生成文件 ★★★

关键词

  • 文件
  • vb
  • 图像
  • api
  • bmpfileheader
  • lret
  • bfsize
  • 生成
  • 调用
  • bmpinfo

得分解答快速导航

  • 帖主:kittyflower
  • BitBlt
  • BitBlt
  • boywhp
  • kmzs
  • 0qr0413356
  • boywhp
  • boywhp

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo