位图存储
❶ 一幅分辨率800*600像素的黑白位图所需存储空间为多少(
这个,要知道位图的单个像素占用的字位,才能求出所占存储空间。
位图一般有8位、16位、32位位图,位图的后缀名一般为.bmp。位图是一种没有经过压缩的图片,而像JPG、GIF等等都是经过压缩的。位图是Microsoft公司制定的,能够运行于许多不同的操作系统。
按照你的题仿悄目,因为为黑白位图,则位图像素有颜色深度为
1
位二进制,即只有两种颜色——黑(1)白(0),综合题码大喊意有:迟野内存
=
800
*
600
*
1
比特,转换为
KB
,则为
内存
=
800
*
600
/
1024
=
467.38KB。
❷ 若不压缩,保存一幅l024×768的24位真彩色位图需要的存储空间为多少KB,怎样计算
24位表示一个像素需要24/8=3像素,1024*768表示有这么多个像素,所以存储空间=1024×768×3B=763×3KB=2289kb。
也就是2289/1024=2.23Mb
字节(Byte)是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符。
一个字节存储8位无符号数,储存的数值范围为0-255。如同字符一样,字节型态的变数只需要用一个位元组(8位元)的内存空间储存。
字节是二进制数据的单位。一个字节通常8位长。但是,一些老型号计算机结构使用不同的长度。为了避免混乱,在大多数国际文献中,使用词代替byte。在多数的计算机系统中,一个字节是一个8位长的数据单位,大多数的计算机用一个字节表示一个字符、数字或其他字符。一个字节也可以表示一系列二进制位。在一些计算机系统中,4 个字节代表一个字,这是计算机在执行指令时能够有效处理数据的单位。一些语言描述需要2个字节表示一个字符,这叫做双字节字符集。一些处理器能够处理双字节或单字节指令。字节通常简写为“B”,而位通常简写为小写“b”,计算机存储器的大小通常用字节来表示。
信息存储量是度量存储器存放程序和数据的数量。其主要度量单位是字节,1个字节(Byte)等于8位(b)二进制。位(bit,Binary Digits):存放一位二进制数,即0或1,为最小的存储单位,8个二进制位为一个字节单位。一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。英文标点占一个字节,中文标点占两个字节。
❸ 假如用位图技术存储一幅分辨率为1024*1024的彩色图片,需要多大的存储空间
1024*768的rgb(24位)彩色位图(bmp)图像约占用2350000
字节(约2.25mb)左右。
虽然是1024*768的rgb(24位)彩色位图,但因图像色彩元素不同,所占的图像信息空间也有所不同。如黑色、白色等比例较多的色彩单一的图像,比色彩复杂(各种颜色都有)的图像所占用的字节要略少一些。
❹ 在相同的条件下,位图所占的空间大还是矢量图空间大
在相同的条件下,位图所占的空间大。
位图数据,记录每个像素对应的颜色号,其记录方式也随颜色模式而定。由于位图在保存时,需要记录每一个像素块的位置和颜色信息,因此,位图存储时占用的空间也比较大。
像素块包含有丰富的颜色信息,位图的特点就是可以表现出色彩的变化和颜色的细微过渡,产生逼真的视觉效果,图感细腻。换言之,只要有足够多不同色彩的像素,就可以制作出色彩丰富的图象,逼真地表现自然界的景象。
(4)位图存储扩展阅读
位图的特点:
位图式图像在保存文件时,需要记录下每一个像素的位置和色彩数据,因此,图像像素越多(即分辨率越高),文件就越大,处理速度也就越慢。但由于它能够记录下每一个点的数据信息,因而可以精确地记录色调丰富的图像,可以逼真地表现自然界的图像,达到照片般的品质。
位图亦称为点阵图像,位图是象素集合,是由称作像素(图片元素)的单个点组成的。这些点可以进行不同的排列和染色以构成图样。当放大位图时,可以看见赖以构成整个图像的无数单个方块。扩大位图尺寸的效果是增多单个像素,从而使线条和形状显得参差不齐。
❺ 为什么文件分配的位图必须保存在大容量存储器中
1.因为如果保存在内存中,当系统崩溃时,这些空闲区间的信息将会被丢失,而如返虚拿果保存在大容量存誉稿储器 中就可以解决这个问题。
2.假设要为一个文件换一个名字。一种选择是使用操作系统提供的 RENAME 方法,另一种方法是:把文漏搭 件复制为新文件,然后删除原来的文件以实现重命名。
❻ 位图图像的每个像素由若干位什么进行存储
位图图像的每个像素通常由若干个二进制位(bits)进行存储。每个像素需要存储的位数称为“位深度”(bit depth),也叫“色深”(color depth)或“色彩位配升纳数”(color bit),通常用比培没特(bit)表示。
位深度越大,单个像素储存的信息就越多,可以表达更多的色彩细节和渐变效果,图像质量也就越高。常用的位深度有1位、8位、16位和24位等,其中1位表示黑白图像,8位表示256种颜色,16位表示65536种颜色,24位表示约1600万种颜色。
需要注意的是,在位图图像中,每个像素储存的信息仅仅是颜色信息,而不包含几何形状信息。因此,位图图笑世像通常难以无损地缩放或放大。同时,位图图像在放大时容易出现锯齿等失真现象,因此不适合用于印刷等需要高精度的图像处理领域。
❼ 位图和矢量图在存储方式上有何不同点
一、颜色表不同
1、位图:位图图片中选择最有代表性的若干种颜色(通常不超过256种)编制成颜色表,然后将图片中原有颜色用颜色表的索引来表示。这样原图片可以被大幅度有损压缩。
2、矢量图:通过数学公式计算获得的,具有编辑后不失真的特点。例如一幅画的矢量图形实际上是由线段形成外框轮廓,由外框的颜色以及外框所封闭的颜色决定画显示出的颜色。
二、Alpha通道不同
1、位图:在原有的图片编码方法基础上,增加像素的透明度信息。图形处理中,通常把RGB三种颜色信息称为红通道、绿通道和蓝通道,相做辩应的把透明度称为Alpha通道。多数使用颜色表的位图格式都支持Alpha通道。
2、矢量图:图像中保存的是线条和图块的信息,所以矢量图形文件与分辨率和图像大小无关,只与图像的复杂程度有关,图像文件所占的存储空间较小。
三、存储格式不同
1、位图:采用位映射存储格式,除了图像深度可选以外,不采消胡链用其他任何压缩,因此,BblP文件所占用的空间很大。
2、矢量图:图像可以无级缩放,对图形进行缩放,旋转或变形操作时,图形不会产生锯齿效果。可以在任何输出设备打印机上以拿孙打印或印刷的最高分辨率进行打印输出。
❽ 位图索引的存储原理
位图索引对数据表的列的每一个键值分别存储为一个位图,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版本,不同的版本,结果有差异.
❾ jpg格式属于的存储格式是
jpg格式属于位图存储格式,它可以神槐将图像以压缩的方式存储在计算机中,具有较高的压缩比,可以有效地减少图像的文件大小,更省存储模游空间。通常,jpg格式的图像具有良旦瞎销好的图像质量,可以被广泛应用于网页、电子邮件、新闻等场合。此外,jpg格式也可以用于记录视频,用于压缩视频文件,使其占用更少的存储空间。
❿ 计算机位图的存储格式是什么
.bmp 存储图像
每张图按大小来存储,即图像的长宽像素大小。
如果一张图片的像素是 240X320,则此图像在内存的存放是一个
240X320的数组,每个数组的元素是int整形(整数占用4个byte)
数码相机中所谓的支持500W像素就是这个意思,代表它能处理多大的图形色彩信息的能力,像素越高,需要处理时间越长,因为数组很大;
数组中每个元素中整形数字含四贺旁位信息:A,R,G,B;
A: alpha通道值,即该位置像素点的透明值(占一个byte取值0~255)
R: 存放Red红色通道;(占一个byte取值0~255)
G: Green 色 ;(占一个byte取值0~255)
B: Blue色;(占一个byte取值0~255)
各个色位之间的关系是“与”的关系
其中RGB又是自然界三原色,通过RGB的组合可以将任何色彩表示出来。
比如 R+G= Yellow 红+绿等于黄色(255,255,255,0)。 所有颜色相加等于白色(255,255,255,255)。 所有颜色不加等于黑色(255,0,0,0)。所有颜色都加一半等于灰色(255,130,130,130);
第一位alpha为零时这张图看不见,透明余敏了;为255时,完全不透明,完全可见。
假设以下数组:
{0xffff0000,0xffff0000,0xffff0000,0xffff0000},
{0xffff0000,0xffff0000,0xffff0000,0xffff0000},
{0xffff0000,0xffff0000,0xffff0000,0xffff0000},
{0xffff0000,0xffff0000,0xffff0000,0xffff0000},
表示这是一张4X4像素大小的全红色的图;
一个像素在屏幕上显示出来非常小,当多个不同的像素按规律摆放在一起形成有行有列的数组的时候让人的眼睛会产生图像。
另外: .Png和.Jpeg等图像都是在这种方法的基础上加入了压缩算法,使得图形质量不怎么损失的情况下文件的尺寸大规模减少,方便人们携带竖拍枝和存储