求单色位图,16色位图,24色位图和256色位图之间的区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求单色位图,16色位图,24色位图和256色位图之间的区别?相关的知识,希望对你有一定的参考价值。

参考技术A

四者之间的区别是:

1、颜色种类不同

单色位图:黑白色。

16色位图:彩色。

24色位图:彩色。

256色位图:彩色。

2、颜色数量不同

单色位图:由2种颜色构成。

16色位图:由16种颜色构成。

24色位图:由24种颜色构成。

256色位图:由256种颜色构成。

3、色彩深度不同

单色位图:单位。

16色位图:4位。

24色位图:真彩色。

256色位图:8位。

色彩深度又叫色彩位数,即位图中要用多少个二进制位来表示每个点的颜色,是分辨率的一个重要指标。常用有1位(单色),2位(4色,CGA),4位(16色,VGA),8位(256色),16位(增强色),24位和32位(真彩色)等。

扩展资料

色彩深度

位图常用的一种压缩方法。从位图图片中选择最有代表性的若干种颜色(通常不超过256种)编制成颜色表,然后将图片中原有颜色用颜色表的索引来表示。

这样原图片可以被大幅度有损压缩。适合于压缩网页图形等颜色数较少的图形,不适合压缩照片等色彩丰富的图形。

在原有的图片编码方法基础上,增加像素的透明度信息。图形处理中,通常把RGB三种颜色信息称为红通道、绿通道和蓝通道,相应的把透明度称为Alpha通道。

多数使用颜色表的位图格式都支持Alpha通道。

色深8位及以上的位图还可以根据其中分别表示RGB三原色或CMYK四原色(有的还包括Alpha通道)的位数进一步分类,如16位位图图片还可分为R5G6B5,R5G5B5X1(有1位不携带信息),R5G5B5A1,R4G4B4A4等。

参考资料来源:百度百科_位图

计算机图形

1.计算机图形的表示方式:

在计算机中,图片是采用位图形式来实现的

单色位图(bmp):(白色)200*200=4万个像素点,8个字节是一byte,大概有5000byte,因为图片的头信息,和事件什么的都保存在图片里,实际图片大小为5.多kb(黑白,1个byte可以表示8个像素点0表示黑色,1表示白色)

256色位图,每一个像素点都有256中颜色,(256个组合不是256位,需要2的8次方个组合需要8位表示)2的8次方,故一个像素占8位,即一个字节.

计算计算机图片的大小:宽*高*(位图)位数/8

注意①Android中默认的位图属性位ARGB_8888,是32位位图,一个像素占用4个字节,在工作中我们需要使用RGB_565,是16位位图,一个像素占用2个字节

 

注意②矢量图到Android5.0之后才支持,所以开发中一般使用的是位图

|--位图:会随着图片的放大缩小,像素失真,内存占用大

|--矢量图:放大缩小不会失真,内存占用小

多媒体是多种媒体的继承,主要包括文本,音频,视频,动画...

二:加载图片到内存

  BitmapFactory.decodeFile("mnt/sdcard/big.jpg");

//安卓下默认32位位图,argb各占一个byte,故是32位位图

加载大图异常:OOM(out of memory)1.69M(一个像素要4个byte表示,实际大小是宽高*4)的图片要申请15.6M的内存而android中一个应用程序最大16M内存

三:加载大图

method1

  1.创建一个现象条件Option option = new O

  2.设置采样率option.inSampleSize=4宽高分别为原来的1/4

method2

  得到图片的宽高信息1

ExifInterface exif = new ExifInterface(Environment.getExternalStorageDirectory()+"/big.jpg");

 //获取图片的宽高,只能用于jpg图片的宽高(头文件信息,)

int width = exif.getAttributeInt(ExifInterface.TAG_IMAGE_WIDTH, 0);获得宽

int height = exif.getAttributeInt(ExifInterface.TAG_IMAGE_LENGTH, 0);获得高

//图片宽高获取2

Options opts= new Options();//创建选项条件

opts.isJUstDecodeBounds=true;//只读取图片的头文件信息,不会加载到内存

//加载图片之前:opts.isJUstDecodeBounds=false;再将图片加载到内存,可以保证不管是什么图片都可以获取图片的宽高,计算出缩放比例

opts.outWidth;

opts.outHeight;//处理前宽高 

//获取屏幕的宽高

get systemService(Window_Service);返回对象WindowManger wm

wm.getDefaultDisplay().getWidth();//获取屏幕的宽,高同样

wm.getDefaultDisplay().getHeight();//获取屏幕的宽,高同样

 

  创建一个现象条件Option option = new Option();

  设置采样率option.inSampleSize=4宽高分别为原来的1/4(图片缩放的唯一标准跟据屏幕宽高和图片宽高设置采样比)//默认1,,,,4-8之间以4为准.只能2的n次方

BitmapFactory.decodeFile(图片路径,option);//造成OOM的关键步骤

  bitmap.getWidth();

  bitmap.getHeight();获得缩放后,图片的宽高

method2,获取屏幕的宽高

**通过上下文拿到

getresource().getDisplayMetrics();

,widthPixels;

.heightPiels;

 

//计算缩放比例

图片宽度/屏幕宽度>图片高度/屏幕高度?,选择大的

 

四:图片的处理

用代码编辑图片,最好处理的是图片在内存库中的拷贝,不去处理原图

//原图

Bitmap srcBitmap = BitmapFactory.decodeFile(mnt/.jpg)

iv_src.setImageBitmap(srcBitmap);

//拷贝原图

//创建一个和原图一样大小的空白画布

Bitmap copyBitmap = Bitmap.createBitmap(srcBitmap.getWidth(),srcBitmap.getHeight(),srcBitmap.getConfig());

//创建画板

Canvas canvas = new Canvas(copyBitmap);

//创建画笔

Paint paint = new Paint();

paint.setColor();

Matrix matrix = new Matrix();

 

以上是关于求单色位图,16色位图,24色位图和256色位图之间的区别?的主要内容,如果未能解决你的问题,请参考以下文章

BMP图片分析

Android11_图片处理

16位色、24位色、32位色有多大差别?

计算机图形

猎豹MFC--Toolbar工具栏也是一种4位16色位图资源

安卓第十五天笔记-图形图像一些简单处理