位图

bmp图片格式了解

守給你的承諾、 提交于 2020-01-01 23:50:35
先看一下bmp的头文件格式: 注意:以上的多字节类型,如Int32是以先高位后低位存储的 ,如位文件大小:0002-0005,Int32类型,要按第5、4、3、2字节顺序组合,得到的整数才是正确的。 有了头文件信息后,我们就可以找到位图数据。位图数据是以4个字节(32位,对应32位CPU的优化)为一组来处理的。 例1. 我们先来看简单的只有黑白两色的内部存储方式(0:黑,1:白): 原始bmp图(一个方块表示一个象素) b mp图的二进制代码 红 框内表示位图数据信息,以4个字节为一组(7*5像素),位图数据5个字节,图高5像素,所以每行1个字节,分别是 : 7E 00 00 00 ;0111 1110 0000 0000 0000 0000 0000 0000 FE 00 00 00 ;1111 1110 0000 0000 0000 0000 0000 0000 7E 00 00 00 ;0111 1110 0000 0000 0000 0000 0000 0000 FE 00 00 00 ;1111 1110 0000 0000 0000 0000 0000 0000 54 00 00 00 ;0101 0100 0000 0000 0000 0000 0000 0000 对比一下原始的bmp图,你就会发现, 是以 先横向再纵向,先下后上 的方式存储。因为横向的像素只有7个

Oracle 索引

荒凉一梦 提交于 2020-01-01 04:56:29
1. 说明 ① 索引是数据库的对象之一,用于加快数据的检索,类似于书籍的索引。在数据库中索引可以减少数据库程序查询结果时所需要的读取的数据量,类似于在书籍中我们利用索引可以不用翻阅整本书即可找到想要的信息。 ② 索引是建立在表上的可选对象;索引的关键在于通过一组排序后的索引键来取代默认的全表扫描方式,从而提高检索效率。 ③ 索引在逻辑上和数据上都与相关的表和数据无关,当创建或者删除一个索引时,不会影响基本的表。 ④ 索引一旦建立,在表上进行DML操作时(例如在执行插入、修改或者删除相关操作时),Oracle会自动管理索引,索引删除,不会对表产生影响。 ⑤ 索引对用户是透明的,无论表上是否有索引,SQL语句的用法不变。 ⑥ oracle创建主键时会自动在该列创建索引。 2. 索引原理 ① 如果没有所以,搜索记录时需要搜索所有的记录(例如查找“name = ‘wish’”),因为不能保证满足条件的结果只有一条,所以需要全部搜索一遍。 ② 若在name上建立索引,Oracle会对全表进行一次搜索,将每条记录的name值按照顺序排列,然后构建索引条目(name和rowID),存储到索引段中,查询时可以直接查找到对应地方。 ③ 创建了索引不一定就会使用,oralce自动统计表的信息后,决定是否使用索引,表中数据很少时使用全表扫描已经很快,没有必要使用索引。 3. 索引使用 创建、修改、删除

数据库索引

不问归期 提交于 2020-01-01 04:49:53
数据库索引概念: 索引是对数据库中一列或多列的值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息,而不必扫描整个数据库。索引就是一种满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。 索引的优缺点 优点: 1、可以大大加快数据的检索速度。 2、通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 3.可以加快表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 4、在使用分组和排序字句进行数据检索时,同样可以显著减少查询中分组和排序的时间。 5、通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。 缺点: 1、创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。 2、索引需要占物理空间,出了数据表要转矩数据空间外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。 3、当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这就降低了数据的维护速度。 哪些列适合创建索引? 1、经常需要搜索的列 2、作为主键的列,强制该列的唯一性和组织表中数据的排序结构。 3.经常用来连接的列,主要是一些外键,可以加快连接速度 4、经常需要排序的列,因为索引已经排序,这样查询可以利用索引的排序加快查询速度 5、经常使用在where字句中的列

GDI 总结三: CImage类使用

我只是一个虾纸丫 提交于 2020-01-01 01:23:53
前言 CImage类是基于GDI+的。可是这里为什么要讲归于GDI? 主要是基于这种考虑: 在GDI+环境中,我们能够直接使用GDI+ ,没多少必要再使用CImage类 可是,假设再GDI环境中,我们要想使用GDI+,有点麻烦。还得增加头文件。增加启动GDI+的代码和关闭GDI+的代码,显得太罗嗦了。GDI 的CBitmap 处理功能又有局限,仅仅能处理BMP格式的图片。 怎么办?这时。我们便可使用CImage类,由于这个类本身封装了GDI+得使用环境,所以无需我们手动设置,简化了我们的操作。 同一时候。又能够利用GDI+中强大的图片处理功能,及能够简便的与CBitmap对象进行转换 ,大慷慨便了在GDI环境下。进行各种图片处理工作 。 事实上,将其称作 GDI/ GDI+ 混合编程,这样才更确切些。 为什么引入CImage类? CBitmap 类仅仅能处理BMP格式的图片,很受限。 而CImage能够处理JPGE GIF BMP PNG多种格式图片,扩展了图片处理功能 且能与CBitmap 进行转换( 由于所加载的位图句柄都是HBITMAP,所以可相互转换),因此引入CImage类进行图像处理 CImage provides enhanced bitmap support, including the ability to load and save images in JPEG

关于CBitmap,LoadBitmap 的使用

二次信任 提交于 2020-01-01 01:22:55
在初始化CBitmap对象时,常用Cbitmap::LoadBitmap,即如下两种: BOOL LoadBitmap( LPCTSTR lpszRecourceName ); BOOL LoadBitmap( UINT nIDResource ); MSDN中的说明为: " 返回值调用成功时返回非零值,否则为0。 lpszResourceName指向一个包含了位图资源名字的字符串(该字符串以null结尾)。NIDResource指定位图资源中资源的ID号。说明本函数从应用的可执行文件中加载由lpszResourceName指定名字或者由nIDResource指定的ID号标志的位图资源。加载的位图被附在Cbitmap对象上。如果由lpszResourceName指定名字的对象不存在,或者没有足够的内存加载位图,函数将返回0。可以调用函数CgdiObject::DeleteObject删除由LoadBitmap加载的位图,否则Cbitmap的析构函数将删除该位图对象。警告 在删除位图对象之前,要保证它没有被选到设备上下文中。在Windows3.1以及以后的版本中,增加了如下的位图:OBM_UPARROWIORM_DNARROWIOBM_RGARROWIOBM_LFARROWI ......" 刚开始用的时候,我直接把图像路径名给了 lpszRecourceName,可总是不成功

常见图片格式了解

依然范特西╮ 提交于 2019-12-31 04:48:37
前言 作为一个客户端开发,对于图片格式一直没有一个清晰的了解,这里简单的罗列出各种图片格式的区别,文章中有部分是他人的引用,会在底部放上链接,望轻喷。 概念了解 有损压缩 & 无损压缩 有损压缩(lossy compression) : 有损压缩算法是一种数据压缩方法,经过此方法压缩、解压的数据会 与原始数据不同但是非常接近。它是与无损数据压缩相对的压缩方法。有损数据压缩又称破坏性资料压缩、有损压缩、有损压缩、不可逆压缩 。其原理是借由将次要的信息数据舍弃,牺牲一些质量来减少数据量、提高压缩比。这种方法经常用于压缩多媒体数据(音频、视频、图片)。根据各种格式设计的不同,有损数据压缩都会有代间损失——每次压缩与解压文件都会带来渐进的质量下降。 无损压缩(Lossless Compression) : 指数据经过压缩后,信息不受损失,还能完全恢复到压缩前的原样 。无损压缩通常用于严格要求“经过压缩、解压缩的数据必须与原始数据一致”的场合。典型的例子包括文字文件、程序可执行文件、程序源代码。有些图片文件格式,例如PNG和GIF,使用的是无损压缩。 索引色 & 直接色 索引色 : 索引颜色是一种以有限的方式管理数字图像颜色的技术,以节省计算机内存和文件存储,同时加速显示刷新和文件传输。即 用一个数字来代表(索引)一种颜色,在存储图片的时候,存储一个数字的组合,同时存储数字到图片颜色的映射

常见图片格式详解

依然范特西╮ 提交于 2019-12-31 04:48:16
标明原作者信息 http://www.cnblogs.com/xiangism 做了几年有关图形、图像的工作,对图片格式算是小有经验,在此写成一文章总结下。虽然一开始并不想讲很理论的东西,但写完后发现几乎全是理论,细想一下关于图片格式的知识本身就是理论的东西,囧~~ 那就力求用最简单的方式将这些“理论”讲清楚吧。 常见的图片格式有bmp, jpg(jpeg), png, gif, webp等。 图像基本数据结构 要讲图片格式还先得从图像的基本数据结构说起。在计算机中, 图像是由一个个像素点组成,像素点就是颜色点,而颜色最简单的方式就是用RGB或RGBA表示, 如图所示 (图1) (图2) 如果有A通道就表明这个图像可以有透明效果。 R,G,B每个分量一般是用一个字节(8位)来表示,所以图(1)中每个像素大小就是3*8=24位图, 而图(2)中每个像素大小是4*8=32位。 这里有三点需要说明: 一、图像y方向正立或倒立 图像是二维数据,数据在内存中只能一维存储,二维转一维有不同的对应方式。比较常见的只有两种方式: 按像素“行排列”从上往下或者从下往上。 如图所示的图像有9个像素点,如果从上往下排列成一维数据是(123456789), 如果是从下往上排列则为(789456123)。 只所以会有这种区别是因为,前一种是以计算机图形学的屏幕坐标系为参考(右上为原点,y轴向下 )

BMP位图图像文件—图像信息丰富,几乎不进行压缩

依然范特西╮ 提交于 2019-12-29 13:23:12
BMP 是英文 Bitmap ( 位图 )的简写,它是Windows操作系统中的标准 图像文件格式 ,能够被多种Windows应用程序所支持。随着Windows操作系统的流行与丰富的Windows应用程序的开发,BMP 位图 格式理所当然地被广泛应用。这种格式的特点是 包含的图像信息较丰富 , 几乎不进行压缩 ,但由此导致了它与生俱生来的缺点-- 占用磁盘空间过大 。所以,目前BMP在单机上比较流行。 简介 BMP( Bitmap -File)图形文件是Windows采用的图形 文件格式 ,在Windows环境下运行的所有图象处理软件都支持BMP图象文件格式。Windows系统内部各 图像 绘制操作都是以BMP为基础的。Windows 3.0以前的BMP图 文件格式 与显示设备有关,因此把这种BMP图象 文件格式 称为设备相关 位图 DDB(device-dependent bitmap)文件格式。Windows 3.0以后的BMP图象文件与显示设备无关,因此把这种BMP图象文件格式称为设备无关 位图 DIB(device-independent bitmap)格式(注:Windows 3.0以后,在系统中仍然存在DDB位图,象BitBlt()这种 函数 就是基于DDB位图的,只不过如果你想将 图像 以BMP格式保存到 磁盘 文件中时,微软极力推荐你以DIB格式保存)

优先级位图算法

谁说我不能喝 提交于 2019-12-27 00:45:25
文章目录 算法的由来 优先级位图算法 算法的由来 我是在学习嵌入式操作系统这门课知道优先级位图算法的,可能描述的啰嗦,将就着看吧!这个算法用来对操作系统的任务进行调度。在μC/OS-II中是这样的,每一个任务都有一个优先级,但是每一个优先级只能有一个任务,那么如何让具有最高优先级的任务先执行。系统中每一个任务都有一个任务控制快TCB,可以将就绪的TCB放进就绪队列,然后处理器执行的时候从就绪队列中选择优先级最高的执行,但是这样的话,嵌入式系统的实时性无法保证,因为需要遍历就绪队列找到最高优先级的任务,所以才有了优先级位图算法。 优先级位图算法 优先级位图算法有一个数组OSRdyTbl[8],数组中的每一值有八位,这样就构成了一个8*8的格子,如下图所示。 在上面的这个表格中,我们在用一个变量OSRdyGrp(八位)来对应OSRdyTb[8]的每一个元素。这个OSRdyTb中当然不是这些1~63的数字,而都只是1,0的二进制数字。如果某一个优先级有任务,那么对应的位置标志为1,然后让OSRdyGrp对应的bit也标志为1。 例如(如图A):优先级35,转成二进制00 100 011,然后将二进制分为高三位100 = 4,低三位011 = 3,然后查看一个表如图B,找到4对应的值与OSRdyGrp相或就能将OSRdyGrp对应的行标志为1,然后3对应的值与OSRdyTbl[4]的值相或

常见图片格式详解

南楼画角 提交于 2019-12-25 02:58:20
做了几年有关图形、图像的工作,对图片格式算是小有经验,在此写成一文章总结下。虽然一开始并不想讲很理论的东西,但写完后发现几乎全是理论,细想一下关于图片格式的知识本身就是理论的东西,囧~~ 那就力求用最简单的方式将这些“理论”讲清楚吧。 常见的图片格式有bmp, jpg(jpeg), png, gif, webp等。 图像基本数据结构 要讲图片格式还先得从图像的基本数据结构说起。在计算机中, 图像是由一个个像素点组成,像素点就是颜色点,而颜色最简单的方式就是用RGB或RGBA表示, 如图所示 (图1) (图2) 如果有A通道就表明这个图像可以有透明效果。 R,G,B每个分量一般是用一个字节(8位)来表示,所以图(1)中每个像素大小就是3*8=24位图, 而图(2)中每个像素大小是4*8=32位。 这里有三点需要说明: 一、图像y方向正立或倒立 图像是二维数据,数据在内存中只能一维存储,二维转一维有不同的对应方式。比较常见的只有两种方式: 按像素“行排列”从上往下或者从下往上。 如图所示的图像有9个像素点,如果从上往下排列成一维数据是(123456789), 如果是从下往上排列则为(789456123)。 只所以会有这种区别是因为,前一种是以计算机图形学的屏幕坐标系为参考(右上为原点,y轴向下 ),而另后一种是以标准的数学坐标系为参考(右下为原点,y轴向上)。这两个坐标系只是y值不一样