标签:c style a color width strong
看到一张图片,然后引发的一系列知识点的搜索
随便打开一张jpg图片,大小4MB,像素为600px*500px,分辨率为75dpi
好吧,最先引发的几个问题:
1.jpg、png、gif、bmp等等格式的文件有什么区别呢?
答:GIF是一种无损压缩,支持256(8bit)种颜色,支持单一透明度,常用于网页动画;
JPG图片:有损压缩图片,不支持动画和透明色,24bit颜色(2的24次方种颜色)
PNG:无损压缩,不支持动画,但是支持full alpha通道(后面讲什么是alpha)。
BMP:windows位图
总结一句话:就是各种图片格式而已,当需要深究时,请看:zh.wikipedia.org/wiki/图形文件格式比较
2.什么是像素?
答:把一张图片不断的放大,发现最后是一个一个的颜色块组成的,这样一个颜色块就是一个像素,所以可以想想:width像素为600px,也就是宽度上由600个这样的颜色块组成,height像素为500px,表示高度上由500个这样的颜色块组成。所以往往看到一张图片的尺寸,600px*500px就知道这个图片宽度和长度上到底有多少像素了。600*500=300000=30万像素,就是大家平时经常说的30万像素,表示一个图片最后由30万个像素组成的。那么同样是30万像素的两个照片,是不是看起来清新度就一样啊?当然不是,这样想,都是30万的像素,那么对于一张5cm*6cm的图片和一张50m*60m的照片,哪个更清楚呢?当然是前者,这就涉及到另外一个概念,分辨率。
3.什么是分辨率?
答:例如72DPI,表示每英寸(2.54厘米)上有72个像素,所以分辨率越高,那么每英寸上像素也就越高,当然也有用横向和纵向像素表示分辨率的,例如1024*768
4.像素、分辨率、尺寸和大小之间有什么关系吗?
答:对于一个实际尺寸为6英寸*8英寸的照片,如果分辨率为72DPI,那么像素也可以算出来了,为:(6*72)px*(8*72)px=312px*576px=18万px,所以相同大小的图片(这里的大小指的是尺寸,例如英寸、厘米等等),分辨率越高,像素也越高;同样的,像素越高,分辨率越高。
那么和大小(多少MB)有什么关系呢?答案是没有直接的关系,也就是相同的像素,文件大小不一定一样,会有其他的因素有关,但是一般情况下,像素越大,图片也越大、
好吧,总结一下,记住这句好就OK了“分辨率表示的是单位长度上有多少像素”:这句话里面有三个词:“分辨率”+“长度”+“像素”,任意两个确定了,第三个值也就确定了,例如:分辨率确定了,长度也确定了,那么像素也确定了。大家平时说的像素越大,图片越清晰,往往是有个默认假设,那就是图片尺寸大小是固定的。
5.什么是RGB?
答:前面说的一个一个的颜色块就是一个像素,那么这个颜色块到底是什么颜色呢?”红色“?"绿色"?还是别的颜色?好吧,下面说说RGB,也就是Red、Green、Blue,其实我们看到的几乎任何颜色都可以用不同比例的红绿蓝颜色来混合而成,也就是RGB分量构成,每个分量的大小从0到255,(一共是8bit)这样R(0)G(0)B(0)就表示白色,R(255)G(255)B(255)黑色,如果R数字比较大,其他GB的数字很小,那么颜色就比较偏红色。所以RGB可以表示的颜色数目为256*256*256种,2的24次方,所以也叫24位色,也叫真彩色。那么我们平时也会看到32位色,表示什么呢?接下来看ARGB。
6.什么是ARGB呢?
答:前面说的32位色,其实也是只能表示2的24次方,只是在前面增加了一个A:灰度值或者是透明度,也就是常说的alpha值,那么alpha值有什么用呢?这样想,有两张图片,重叠在一起,是不是只能看到上面的图片了,那是因为默认的alpha值是100%,也就是不透明,所以把下面的遮住了,而通过改变alpha值,可以让上下两张图片都显示,所以alpha值可以让图片平滑的去合成,大家可以在ps里面亲自尝试去体会。如果你真的去尝试了,可能会遇到除了RGB,可能还有一种模式:CMYK,和RGB有什么区别呢?接下来看CMYK。
6.RGB和CMYK有什么区别呢?
答:想一想,看电脑屏幕上的字和看书上的字有什么区别?电脑屏幕上的字是自己发光的,而书上的字是反光的,所以在一间黑暗的房间,可以看见电脑里面的字,而看不到书上的字,所以RGB是一种发光的色彩模式,例如电子屏幕上看到的图像,而CMYK是一种依靠反光的色彩模式,例如期刊杂志图书上看到的图像,RGB的三原色为Red、Green、Blue,CMYK的三(四)原色为Cyan:青色、Magenta:洋红色、Yellow:黄色、Black:黑色。
好了,前面说这么多,那么计算机里面是如何数字化图像的呢?之前说的,一个图像是一个一个的像素组成的,例如一个500*600px的图像,就是500*600个点组成的,每个点由ARGB组成,所以可以表示成一个500*600的矩阵表示,也就是说,任何一个图片,在计算机里面对应一个矩阵,对图片的修改,也就是对矩阵的修改,而对于维数很高的矩阵,处理起来比较麻烦,所以会用到矩阵的特征值,矩阵的各种分解,大学期间看起来没有什么用的矩阵的知识,这里会派上很大用场,同时让矩阵在图像处理上应用,能够进一步加深理解矩阵里面的知识点。于是引发下面一系列问题:矩阵特征值到底是什么?矩阵的奇异值分解、最大秩分解到底是干什么的?等等一系列矩阵相关的知识.
一张图片引发的思考,布布扣,bubuko.com
一张图片引发的思考
标签:c style a color width strong
原文地址:http://www.cnblogs.com/wuguanglei/p/3763116.html