中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Visual Basic > 综合文章
使用vb访问BMP位图,如何读取位图分辨率
作者:未知 时间:2005-08-07 20:50 出处:编程爱好者网站 责编:chinaitpower
              摘要:使用vb访问BMP位图,如何读取位图分辨率
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;  

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有