• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

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

发布: 2007-7-14 20:28 | 作者: 佚名    | 来源: 网络转载     | 查看: 172次 | 进入软件测试论坛讨论

领测软件测试网 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;  

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网