精华内容
下载资源
问答
  • BMP位图

    2018-10-25 14:22:30
    BMP位图由4个部分组成:位图文件头,位图信息头,调色板,像素数据。 1.位图文件头 VC++中用BITMAPFILEHEADER数据结构定义位图头文件,它包含文件类型、文件大小、存放位置等信息,结构如下: typedef struct ...

    BMP位图由4个部分组成:位图文件头,位图信息头,调色板,像素数据。

    1.位图文件头

    VC++中用BITMAPFILEHEADER数据结构定义位图头文件,它包含文件类型、文件大小、存放位置等信息,结构如下:

    typedef struct tagBITMAPFILEHEADER
    {
    WORD byType;         //说明文件的类型
    DWORD bfSize;        //说明文件的大小,以字节为单位
    WORD bfReserved1;    //保留,设置为0;
    WORD bfReserved2;    //保留,设置为0;
    DWORD bfOffBits;     //说明从BITMAPFILEHEARDER结构开始到实际图像数据陈列字节间的字节偏移量
    
    }BITMAPFILEHEARDER;
    

    这个结构的长度是固定的,为14字节,其中WORD为无符号16位二进制数,DWORD为无符号32位二进制数。

    2.位图信息头

    VC++中用BITMAPINFOHEADER数据结构定位位图信息头,它包含位图的大小、压缩类型和颜色格式等信息,其结构定义如下:

    typedef struct BITMAPINFOHEADER 
    {
    DWORD biSize;        //本结构大小的字节数
    LONG biWidth;        //位图的宽度,单位为像素点
    LONG biHeigh;        //位图的高度,单位为像素点
    WORD biPlanes;       //目标设备位平面数,其值设置为1
    WORD biBitCount;     //像素的位数(1,4,8,24)
    DWORD biCompression; //压缩方式,0为不压缩
    DWORD biSizeImage;   //压缩图像大小的字节数,压缩图像为0
    LONG biXpelsPerMeter;//水平分辨率(像素点每米)
    LONG biYpelsPerMeter;//垂直分辨率(像素点每米)
    DWORD biClrUsed;     //图像中使用的颜色数
    DWORD biClrImportant;//重要色彩数,0表示都重要
    
    }BITMAPINFOHEADER;

    3.调色板

    VC++中,调色板实际上定义为一个数组,共有biClrUsed个像素,每个元素的类型是一个RGBQUAD结构,其定义如下:

    typedef struct tagRGBQUAD
    {
    BYTE rgbBlue;    //指定蓝色分量
    BYTE rgbGreen;   //指定绿色分量
    BYTE rgbRed;     //指定红色分量
    BYTE rgbReserved;//保留值
    
    }RGBQUAD;

    24位真彩色图像不使用调色板,因为位图中的RGB值就代表了每个像素的颜色,所以BITMAPINFOHEADER后直接就是像素数据

    4.像素数据

    紧跟在调色板之后的是图像数据字节阵列,用BYTE数据结构存储。图像的每一扫描行由表示图像的连续像素字节组成,每一行的字节数取决于图像的颜色数和图像的宽度。扫描行是由底向上存储的,也就是说,数据存放是从下到上,从左到右。

    展开全文
  • bmp位图

    2014-05-30 15:57:00
    BMP文件由位图文件头、位图信息头、调色板和图像数据四部分组成 (1)位图文件头 1 typedef struct tagBITMAPFILEHEADER 2 { 3 WORD bfType; //位图文件的类型,必须为BM(1-2字节) 4 DWORD bfSize; //位图...

    BMP文件由位图文件头、位图信息头、调色板和图像数据四部分组成

    (1)位图文件头

    1 typedef struct tagBITMAPFILEHEADER
    2 {
    3     WORD     bfType;            //位图文件的类型,必须为BM(1-2字节)
    4     DWORD    bfSize;            //位图文件的大小,以字节为单位(3-6字节,低位在前)
    5     WORD     bfReserved1;      //位图文件保留字,必须为0(7-8字节)
    6     WORD     bfReserved2;      //位图文件保留字,必须为0(9-10字节)
    7     DWORD    bfOffBits;         //位图数据的起始位置,以相对于位图(11-14字节,低位在前)
    8 }BITMAPFILEHEADER;

     

    (2)位图信息头

     1 typedef struct tagBITMAPINFOHEADER
     2 {
     3     DWORD    biSize;                //本结构所占用字节数(15-18字节)
     4     LONG     biWidth;              //位图的宽度,以像素为单位(19-22字节)
     5     LONG     biHeight;             //位图的高度,以像素为单位(23-26字节)
     6     WORD     biPlanes;             //目标设备的级别,必须为1(27-28字节)
     7     WORD     biBitCount;            //每个像素所需的位数,必须是1(双色),(29-30字节)
     8                                   //4(16色),8(256色)16(高彩色)或24(真彩色)之一
     9     DWORD    biCompression;         //位图压缩类型,必须是0(不压缩),(31-34字节)
    10                                    //1(BI_RLE8压缩类型)或2(BI_RLE4压缩类型)之一
    11     DWORD    biSizeImage;          //位图的大小(其中包含了为了补齐行数是4的倍数而添加的空字节),以字节为单位(35-38字节)
    12     LONG     biXPelsPerMeter;       //位图水平分辨率,每米像素数(39-42字节)
    13     LONG     biYPelsPerMeter;       //位图垂直分辨率,每米像素数(43-46字节)
    14     DWORD    biClrUsed;             //位图实际使用的颜色表中的颜色数(47-50字节)
    15     DWORD    biClrImportant;        //位图显示过程中重要的颜色数(51-54字节)
    16 }BITMAPINFOHEADER;

     

    (3)调色板

    typedef struct tagRGBQUAD
    {
        BYTE    rgbBlue;                //蓝色的灰度(值范围为0-255)
        BYTE    rgbGreen;            //绿色的灰度(值范围为0-255)
        BYTE    rgbRed;               //红色的亮度(值范围为0-255)
        BYTE    rgbReserved;            //保留,必须为0
    }RGBQUAD;        

    颜色表中RGBQUAD结构数据的个数由biBitCount来确定:

    当biBitCount=1,4,8时,分别有2,16,256个表项
    当biBitCount=24时,没有颜色表项

     

    (4)图像数据

    位图数据记录了位图的每一个像素值,记录顺序是在扫描行内是从左到右,扫描行之间是从下到上。位图的一个像素值所占的字节数:
    当biBitCount=1时,8个像素占1个字节;
    当biBitCount=4时,2个像素占1个字节;
    当biBitCount=8时,1个像素占1个字节;
    当biBitCount=24时,1个像素占3个字节,按顺序分别为B,G,R;
    Windows规定一个扫描行所占的字节数必须是4的倍数(即以long为单位),不足的以0填充,
    biSizeImage = ((((bi.biWidth * bi.biBitCount) + 31) & ~31) / 8) * bi.biHeight;

     

     

    转载于:https://www.cnblogs.com/paullam/p/3761276.html

    展开全文
  • 压缩文件提供: 1. bmp位图文件详细格式分析; 2. bmp位图文件打开,读取功能; 3. bmp位图文件写入,保存功能; 4. bmp位图文件显示到指定控件(如,picture控件上);
  • 在嵌入式产品中,优化存储空间的限制,一般图片都需要压缩处理(MCU资源限,jpg等压缩算法均不能实现),可以将bmp或者jpg转换为16位bmp位图的方式,大多数情况下,失真度还是比较小的,肉眼基本分辨不出来。...

    在嵌入式产品中,优化存储空间的限制,一般图片都需要压缩处理(MCU资源限,jpg等压缩算法均不能实现),可以将bmp或者jpg转换为16位bmp位图的方式,大多数情况下,失真度还是比较小的,肉眼基本分辨不出来。
    转换不能采用简单地抛弃低位数据的方法,那样会导致图片严重的失真,这里找了一个java的实现方法:

     public static void image2RGB565Bmp(String filePath, String saveFileName)
             throws IOException, InterruptedException{
          
    	BufferedImage sourceImg = ImageIO.read(new File(filePath));
    	int h = sourceImg.getHeight(), w = sourceImg.getWidth();
    	int[] pixel = new int[w * h];
    	
    	PixelGrabber pixelGrabber = new PixelGrabber(sourceImg, 0, 0, w, h, pixel, 0, w);
    	pixelGrabber.grabPixels();
    	
    	MemoryImageSource m = new MemoryImageSource(w, h, pixel, 0, w);
    	Image image = Toolkit.getDefaultToolkit().createImage(m);
    	BufferedImage buff = new BufferedImage(w, h, BufferedImage.TYPE_USHORT_565_RGB);
    	buff.createGraphics().drawImage(image, 0, 0 ,null);
    	ImageIO.write(buff, "bmp", new File(saveFileName));
        }
        
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
    	// TODO code application logic here
    	
    	if ( args.length != 2 ){
    	    System.err.println("参数错误");
    	}else
    	{
    	    System.out.println("即将执行 "+args[0] +" -> "+" "+args[1]);
    	    try {
    	        BmpConvert.image2RGB565Bmp(args[0],args[1]);
    	        System.out.println("完成!");
    	    } catch (IOException | InterruptedException ex) {
    	        System.err.println( ex.getMessage());
    	    }
    	}
    } 
    

    效果还是可以的,和image2lcd不相上下。

    把该程序打包为jar文件,再通过exe4j制作为windows可执行的.exe格式文件,后续可以通过命令行传参的方式进行调用,方便功能合成。目前java执行速度还是有点慢,处理一张图片需要耗时几秒不等。

    展开全文
  • BMP位图文件结构.pptx

    2021-04-10 22:20:23
    BMP位图文件结构
  • VC++智能加载BMP位图

    2021-03-15 15:43:17
    摘要:VC/C++源码,数据库应用,加载位图 VC++智能加载BMP位图,采用优化算法让加载BMP的速度特别快,有兴趣的下载源码参考研究。
  • 易语言BMP位图转换AVI视频源码,BMP位图转换AVI视频,子程序1,BMP到AVI,AVIFileInit,AVIFileExit,AVIFileOpen,AVIFileCreateStream,AVIStreamSetFormat,AVIStreamWrite,AVIStreamRelease,CallWindowProcA,...
  • BMP位图格式

    2013-06-05 10:24:57
    BMP位图的格式,对编程需要用到BMP格式的人很有帮助。
  • 主要介绍了bmp 缩放代码(BMP位图任意放大 和缩小),需要的朋友可以参考下
  • 内容索引:VC/C++源码,界面编程,图形菜单,界面编程,位图 一个使用BMP位图编写的VC++图形菜单源码。
  • 内容索引:VB源码,图形处理,图片透明,位图 VB操作BMP位图混合透明处理演示程序程序包中预置有几张BMP位图,速度比较快,支持缩放。并可以对混合的BMP位图位置进行设定,或者是设置X、Y坐标等。程序在使用off-screen ...
  • BMP位图转换AVI视频.rar

    2020-04-04 11:16:37
    BMP位图转换AVI视频.rar
  • BMP位图剖析

    2012-04-10 02:47:15
    BMP位图剖析,VC++实现的,包括位图的转换,显示,截取等。
  • BMP位图文件格式

    2015-05-11 20:14:52
    简洁明了的介绍了BMP位图格式,以及获取不同位图颜色分量的方式。
  • BMP位图按钮的VC++实现

    2021-03-15 19:07:33
    内容索引:VC/C++源码,界面编程,位图按钮 BMP位图按钮的VC++实现,用一张位图实现按钮的三种状态,这里是以Yahoo的Logo为例展开代码编写,目的是教会大家方法,授人于鱼不如授人于渔,希望大家能造出更加漂亮的窗体...
  • VB实现bmp位图透明实例,程序包中预置有几张BMP位图,速度比较快,支持缩放。并可以对混合的BMP位图位置进行设定,或者是设置X、Y坐标等。程序在使用off-screen DCs 或者AutoRedraw时,缩放速度非常快。
  • 易语言BMP位图转换AVI视频源码例程程序调用API函数,实现BMP位图封装转换到AVI视频。点评:将BMP位图按顺序加入到AVI视频中
  • 内容索引:VC/C++源码,图形处理,BMP,位图 一个VC处理BMP位图的综合实例,源代码是英文的,E文好的朋友可以试下,自我感觉良好 ,可以调整BMP位图的色彩、亮度、对比度、显示颜色信息,转换格式等,汉化一下还是不错...
  • 易语言BMP位图转换AVI视频源码
  • 摘要:VC/C++源码,图形处理,位图动画 ...VC++ 实现“静态”的BMP位图动画,形成类似GIF的帧动画,里面涉及一些定时器、BMP位图加载、创建兼容DC、激活开始按钮等相关功能。 运行环境:Windows/Visual C/C++
  • 格式BMP位图显示原理

    2010-09-17 15:02:58
    BMP 位图 显示原理 BMP 位图 显示原理 BMP 位图 显示原理
  • 摘要:VB源码,图形处理,二进制,重绘位图 测试位图双缓冲速度,以二进制方式打开BMP位图,并重组位图,由于是练习用的,所以代码比较乱。  编译环境: 2008,创作时间及作者:2013年4月3日 无敌大迷糊。  以二进制...
  • 摘要:C#源码,图形图像,图形绘制,DrawImage C#动态加载bmp位图并进行图形绘制,主要是使用Graphics对象创建图形,实际是动态加载了一张BMP位图,但是是使用绘制的方法加载,使用了DrawImage方法。
  • 内容索引:VB源码,界面编程,半透明,透明窗体 VB使用BMP位图制作背景透明的窗体,如果BMP位图是纯色那就更好了,提醒一下,这里所说的透明窗体是指背景透明,也就是窗体可以是把一张位图扒除背景色后的形状,空白处...
  • BMP位图图像格式简介

    2015-01-07 11:48:09
    BMP位图图像格式简介,位图文件结构表,简单举例
  • 摘要:VC/C++源码,图形处理,BMP,位图 三个VC++读取并显示BMP位图的小程序,通过读取位图资源显示位图、通过位图文件直接得到位图大孝通过装入位图文件显示位图。
  • C语言代码,生成bmp位图,代码简单注释详细,适合学习C语言文件操作使用!
  • BMP位图数据结构文档

    2009-08-06 12:23:29
    BMP位图数据结构BMP位图数据结构BMP位图数据结构
  • MFC中旋转BMP位图

    2008-09-01 12:47:51
    MFC中旋转BMP位图 MFC中旋转BMP位图 MFC中旋转BMP位图 MFC中旋转BMP位图

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,225
精华内容 2,090
关键字:

bmp位图