這裡蒐索程式師資訊,查找有用的技術資料
当前位置:首页 » 服务存储 » 一张位图的存储
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

一张位图的存储

发布时间: 2022-04-16 04:00:30

存储一张80X20像素(8位)的图像所需的储存容量是

256色,就是以你的显示器只能显示256种颜色的模式。即2^8(二的八次方)种颜色。 也就是通常所说的8位。而一个字节=8bit 1KB=1024字节 按照8位位图计算存储空间:即 50×20=10000个像素点×8bit 换算成字节=10000×8/8=10000字节=0.9765625KB≈1KB

㈡ 假如用位图技术存储一幅分辨率为1024*1024的彩色图片,需要多大的存储空间

1024*768的rgb(24位)彩色位图(bmp)图像约占用2350000
字节(约2.25mb)左右。
虽然是1024*768的rgb(24位)彩色位图,但因图像色彩元素不同,所占的图像信息空间也有所不同。如黑色、白色等比例较多的色彩单一的图像,比色彩复杂(各种颜色都有)的图像所占用的字节要略少一些。

㈢ 简述位图图像和矢量图象在计算机中的存储方式

位图是以相素的形式,也就是点阵的形式,而矢量图则是以算法的形式存储。

㈣ 位图和矢量图在存储方式上有何不同点

一、颜色表不同

1、位图:位图图片中选择最有代表性的若干种颜色(通常不超过256种)编制成颜色表,然后将图片中原有颜色用颜色表的索引来表示。这样原图片可以被大幅度有损压缩。

2、矢量图:通过数学公式计算获得的,具有编辑后不失真的特点。例如一幅画的矢量图形实际上是由线段形成外框轮廓,由外框的颜色以及外框所封闭的颜色决定画显示出的颜色。


二、Alpha通道不同

1、位图:在原有的图片编码方法基础上,增加像素的透明度信息。图形处理中,通常把RGB三种颜色信息称为红通道、绿通道和蓝通道,相应的把透明度称为Alpha通道。多数使用颜色表的位图格式都支持Alpha通道。

2、矢量图:图像中保存的是线条和图块的信息,所以矢量图形文件与分辨率和图像大小无关,只与图像的复杂程度有关,图像文件所占的存储空间较小。

三、存储格式不同

1、位图:采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BblP文件所占用的空间很大。

2、矢量图:图像可以无级缩放,对图形进行缩放,旋转或变形操作时,图形不会产生锯齿效果。可以在任何输出设备打印机上以打印或印刷的最高分辨率进行打印输出。


㈤ 存储一个400x600的位图,如果记录16色,所需存储空间大约是

这幅图有400x600个像素,16位指每个像素用16个二进制数表示,也就是一幅图需要400x600x16位(bit),而一个字节(Bite)包含8位,那么这幅图需要400x600x16/8字节等于480000B=480KB,答案选B

㈥ 存储一幅分辨率为800*600像素的256色彩色位图图象,需用多少字节的存储空间大约是多少KB

256是2的8次方,所以一共是 800x600x8=3840000bit

8bit = 1byte :480000byte

1kb= 1024byte :468.75kb

再乘3就是彩色。

以上是RGB模式,完整不压缩bitmap格式。

(6)一张位图的存储扩展阅读:

通常情况下,图像的分辨率越高,所包含的像素就越多,图像就越清晰,印刷的质量也就越好。同时,它也会增加文件占用的存储空间。

通常,“分辨率”被表示成每一个方向上的像素数量,比如640X480等。某些情况下也可以同时表示成“每英寸像素”(ppi)以及图形的长度和宽度。比如72ppi,和8X6英寸。ppi和dpi经常都会出现混用现象。从技术角度说,“像素”(P)只存在于计算机显示领域,而“点”(d)只出现于打印或印刷领域。

㈦ 请教关于位图数据存储结构

正常情况下数据块大小应该是480000字节,不知道PS为什么这样做,多写了2个字节0。其实这两个字节去掉并不影响图像的显示。

不要用这个来研究位图结构,这是一个特殊情况。如果你用画图保存一个400*400的24位位图,就是480000字节。

其实数据区中可以多出任意字节的数据,但位图显示时只取前面宽*高的有效字节数,你可以实际试一下。 有的时候可以用这个原理在图像文件中隐藏一些其他数据。

㈧ 位图索引的存储原理

位图索引对数据表的列的每一个键值分别存储为一个位图,Oracle对于不同的版本,不同的操作方式,数据生成均有差别.
对于8i,9i,
下面分3种方式来讨论数据的插入:
a.一次插入一行,插入多行后,一次提交;
b.每插入一行,提交一次;
c.批量插入方式,一次提交;
对于第一种方式,观察位图索引的变化情况.
a.假设插入8行相同键值的数据,如果以每行方式插入,然后一次提交,则会生成8个位图
SQL> Insert Into H病人挂号记录(Id,No,号别,执行人) Values(1,'G000001',1,'张1');
1 row inserted
SQL> /
1 row inserted
SQL> /
1 row inserted
SQL> /
1 row inserted
SQL> /
1 row inserted
SQL> /
1 row inserted
SQL> /
1 row inserted
SQL> /
1 row inserted
SQL> commit;
Commit complete
SQL> alter system mp datafile 1 block 40028;
System altered
row#0[7847] flag: -----, lock: 0
col 0; len 3; (3): d5 c5 31 --键值'张1'
col 1; len 6; (6): 00 40 9c 54 00 00 --rowid的起始位置
col 2; len 6; (6): 00 40 9c 54 00 07 --rowid的终止位置
col 3; len 2; (2): c8 ff --位图编码
row#1[7802] flag: -----, lock: 0
col 0; len 3; (3): d5 c5 31
col 1; len 6; (6): 00 40 9c 54 00 08
col 2; len 6; (6): 00 40 9c 54 00 0f
col 3; len 2; (2): c8 03
row#2[7780] flag: -----, lock: 0
col 0; len 3; (3): d5 c5 32
col 1; len 6; (6): 00 40 9c 54 00 08
col 2; len 6; (6): 00 40 9c 54 00 0f
col 3; len 1; (1): 02
row#3[7758] flag: -----, lock: 0
col 0; len 3; (3): d5 c5 33
col 1; len 6; (6): 00 40 9c 54 00 08
col 2; len 6; (6): 00 40 9c 54 00 0f
col 3; len 1; (1): 03
row#4[7736] flag: -----, lock: 2
col 0; len 3; (3): d5 c5 34
col 1; len 6; (6): 00 40 9c 54 00 08
col 2; len 6; (6): 00 40 9c 54 00 0f
col 3; len 1; (1): 04
row#5[7714] flag: -----, lock: 2
col 0; len 3; (3): d5 c5 35
col 1; len 6; (6): 00 40 9c 54 00 08
col 2; len 6; (6): 00 40 9c 54 00 0f
col 3; len 1; (1): 05
----- end of leaf block mp -----
但是,下次再插入一行相同键值的数据时,会自动合并这8行位图为一行位图,并生成一个新的索引位图行存放刚插入行的索引:
SQL> Insert Into H病人挂号记录(Id,No,号别,执行人) Values(1,'G000001',1,'张1');
1 row inserted
SQL> commit;
Commit complete
SQL> alter system mp datafile 1 block 40028;
System altered
row#0[7847] flag: -----, lock: 2
col 0; len 3; (3): d5 c5 31
col 1; len 6; (6): 00 40 9c 54 00 00
col 2; len 6; (6): 00 40 9c 54 00 07
col 3; len 2; (2): c8 ff
row#1[7825] flag: -----, lock: 2
col 0; len 3; (3): d5 c5 31
col 1; len 6; (6): 00 40 9c 54 00 08
col 2; len 6; (6): 00 40 9c 54 00 0f
col 3; len 1; (1): 00
----- end of leaf block mp -----
b.数据每行提交方式,与上面的情况相似,但有一点不一样,每提交一行,拷贝原来的位图,生成新的位图,并标记原来的位图为已删除,
标记为已删除的位图,只有索引块需要分配新的位图时,才会清除标记为已删除的位图,重用这些空间.
在8i,9i上实验的结果,与ITPUB的<Oracle 数据库性能优化>一书378页一致.
如果1000条相同键值的数据插入,将生成125个包括8条记录的位图行.
c.第三种方式,批量插入数据,insert into H病人挂号记录(Id,No,号别,执行人) select ***方式,
同一键值,只生成一次位图,只有一个位图.
SQL> Insert Into H病人挂号记录(Id,No,号别,执行人)
Select 1,'G000001',1,'张1' From al
Union All
Select 2,'G000002',1,'张1' From al
Union All
Select 3,'G000003',1,'张1' From al
Union All
Select 4,'G000004',1,'张1' From al
Union All
Select 5,'G000005',1,'张1' From al
Union All
Select 6,'G000006',1,'张1' From al
Union All
Select 7,'G000006',1,'张1' From al
Union All
Select 8,'G000006',1,'张1' From al
Union All
Select 9,'G000006',1,'张1' From al;
SQL> commit;
Commit complete
SQL> alter system mp datafile 1 block 40028;
System altered
row#0[8006] flag: -----, lock: 2
col 0; len 3; (3): d5 c5 31
col 1; len 6; (6): 00 40 9c 54 00 00
col 2; len 6; (6): 00 40 9c 54 00 0f
col 3; len 3; (3): c9 ff 01
row#1[8030] flag: ---D-, lock: 2
col 0; NULL
col 1; NULL
col 2; NULL
col 3; NULL
----- end of leaf block mp -----
所以,位图索引最好采用批量插入方式,这样,每个键值只生成一个位图.而单行数据插入方式,每个键值将每8行数据生成一个位图.
10G的情况,则简单得多.
上面3种方式,相同键值的插入,位图的生成是一样的,只有一个位图,并且,每次提交时,并不会删除以前的位图,而是直接修改对应键值的位图.
每次插入一行数据,插入9行后提交
row#0[7763] flag: ------, lock: 2, len=29
col 0; len 3; (3): d5 c5 31
col 1; len 6; (6): 00 00 00 00 00 00
col 2; len 6; (6): 00 40 ef f2 00 0f
col 3; len 8; (8): f9 e4 d5 dc bc 01 ff 01
----- end of leaf block mp -----
再批量插入9行数据并提交
row#0[7733] flag: ------, lock: 2, len=30
col 0; len 3; (3): d5 c5 31
col 1; len 6; (6): 00 00 00 00 00 00
col 2; len 6; (6): 00 40 ef f2 00 17
col 3; len 9; (9): fa e4 d5 dc bc 01 ff ff 03
----- end of leaf block mp -----
可以看出,10G对位图索引的存储进行了优化,一个键值在索引块中只有一个位图
注意,其中有些结论并不是完全正确的,可以自己实验证明,另外,该文涉及的实验没有标明Oracle版本,不同的版本,结果有差异.

㈨ 一幅1024X768像素的黑白位图图象理论上所须的存储空间多大

要是DIB位图的话
DIB头占40字节
DIB调色板4个字节
DIB图像数据
行是1024像素占用128字节,但是位图存储中每一行必须是4的整倍数字节长度,128正好是4的32倍,因此该DIB图像数据占128*768=98304字节
总DIB位图的总长度是98304+40+4=98348字节
如果要存成BMP图片的话,还要加上BMP文件头的长度14个字节
98348+14=98362字节

㈩ 一幅分辨率800*600像素的黑白位图所需存储空间为多少(

这个,要知道位图的单个像素占用的字位,才能求出所占存储空间。
位图一般有8位、16位、32位位图,位图的后缀名一般为.bmp。位图是一种没有经过压缩的图片,而像JPG、GIF等等都是经过压缩的。位图是Microsoft公司制定的,能够运行于许多不同的操作系统。
按照你的题目,因为为黑白位图,则位图像素有颜色深度为
1
位二进制,即只有两种颜色——黑(1)白(0),综合题意有:内存
=
800
*
600
*
1
比特,转换为
KB
,则为
内存
=
800
*
600
/
1024
=
467.38KB。