当前位置: 网学 > 编程文档 > VB > 正文

使用vb访问BMP位图,如何读取位图分辨率

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/16
下载{$ArticleTitle}原创论文样式

Private Declare Function GetObject Lib "gdi32" Alias "GetObjectA" _

(ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) _  
As Long  
Private Declare Function GetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, _  
ByVal dwCount As Long, lpBits As Any) As Long  
  
Private Type BITMAP  
bmType As Long  
bmWidth As Long  
bmHeight As Long  
bmWidthBytes As Long  
bmPlanes As Integer  
bmBitsPixel As Integer  
bmBits As Long  
End Type  
  
Private Sub Command1_Click()  
Dim hBitmap As Long  
Dim res As Long  
Dim bmp As BITMAP  
Dim byteAry() As Byte  
Dim totbyte As Long, i As Long  
hBitmap = Picture1.Picture.Handle  
  
res = GetObject(hBitmap, Len(bmp), bmp) ''取得BITMAP的结构  
  
totbyte = bmp.bmWidthBytes * bmp.bmHeight ''总共要多少BYTE来存图  
ReDim byteAry(totbyte - 1)  
''将Picture1中的图信息存到ByteAry  
res = GetBitmapBits(hBitmap, totbyte, byteAry(0))  
  
Debug.Print "Total Bytes Copied :"; res  
Debug.Print "bmp.bmBits "; bmp.bmBits  
Debug.Print "bmp.bmBitsPixel "; bmp.bmBitsPixel ''每相素位数  
Debug.Print "bmp.bmHeight "; bmp.bmHeight ''以相素计算图象高度  
Debug.Print "bmp.bmPlanes "; bmp.bmPlanes  
Debug.Print "bmp.bmType "; bmp.bmType  
Debug.Print "bmp.bmWidth "; bmp.bmWidth ''以相素计算图形宽度  
Debug.Print "bmp.bmWidthBytes "; bmp.bmWidthBytes ''以字节计算的每扫描线长度  
End Sub  
  
位图信息头  
  
----  
  
BMP位图信息头数据用于说明位图的尺寸等信息。  
typedef struct tagBITMAPINFOHEADER{  
DWORD biSize; // 本结构所占用字节数  
LONGbiWidth; // 位图的宽度,以像素为单位  
LONGbiHeight; // 位图的高度,以像素为单位  
WORD biPlanes; // 目标设备的级别,必须为1  
WORD biBitCount// 每个像素所需的位数,必须是1(双色),  
// 4(16色),8(256色)或24(真彩色)之一  
DWORD biCompression; // 位图压缩类型,必须是 0(不压缩),  
// 1(BI_RLE8压缩类型)或2(BI_RLE4压缩类型)之一  
DWORD biSizeImage; // 位图的大小,以字节为单位  
LONGbiXPelsPerMeter; // 位图水平分辨率,每米像素数  
LONGbiYPelsPerMeter; // 位图垂直分辨率,每米像素数  
DWORD biClrUsed;// 位图实际使用的颜色表中的颜色数  
DWORD biClrImportant;// 位图显示过程中重要的颜色数  
} BITMAPINFOHEADER;  

  • 下一篇资讯: VB6中用DataReport做报表
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号