一张图片引发的思考

看到一张图片,然后引发的一系列知识点的搜索

随便打开一张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的矩阵表示,也就是说,任何一个图片,在计算机里面对应一个矩阵,对图片的修改,也就是对矩阵的修改,而对于维数很高的矩阵,处理起来比较麻烦,所以会用到矩阵的特征值,矩阵的各种分解,大学期间看起来没有什么用的矩阵的知识,这里会派上很大用场,同时让矩阵在图像处理上应用,能够进一步加深理解矩阵里面的知识点。于是引发下面一系列问题:矩阵特征值到底是什么?矩阵的奇异值分解、最大秩分解到底是干什么的?等等一系列矩阵相关的知识.

时间: 2024-10-12 15:58:48

一张图片引发的思考的相关文章

一张图片引发的思考(2)

上一篇写了图像的一些东西,再写点儿关于图像的点,因为这些概念还是容易搞混的.这次配合photoshop来理解文档大小.像素大小.分辨率的问题. 先看下面的例子: 如上图,在photoshop里面新建文件,分辨率为1像素/厘米,宽度为40像素,高度是30像素,那么按上篇里面写的,图像的宽和高是多少呢?非常easy,宽为:40厘米,高度为30厘米,那么在photoshop显示的大小是不是应该是40厘米*30厘米?点击确定,看看效果如下: 实际显示出来只有一点点,哪有40cm和30cm? 下面我们继续

曲演杂坛--一条DELETE引发的思考

原文:曲演杂坛--一条DELETE引发的思考 场景介绍: 我们有一张表,专门用来生成自增ID供业务使用,表结构如下: CREATE TABLE TB001 ( ID INT IDENTITY(1,1) PRIMARY KEY, DT DATETIME ) 每次业务想要获取一个新ID,就执行以下SQL: INSERT INTO TB001(DT) SELECT GETDATE(); SELECT @@IDENTITY 由于这些数据只需保留最近一天的数据,因此建立一个SQL作业来定期删除数据,删除脚

一次部署HTTPS的相关事件引发的思考

前言: 上周五快要下班的时候,突然收到通知客户希望了解一下部署HTTPS的流程,这种事情谁听了都会有几分诧异的.因为这件事虽然和工作有一定的相关度,但平时不会走这个方向,实际上也较少接触.此外,客户手下应该不缺人,做运维和开发的肯定比我更懂这个,但情况却和我想的不一样. 正文: 客户有需求,就应该尽量满足!因此,尽管之前对Apache.Tomcat的一些配置不熟,也未有过自己部署HTTPS的经验[当然失败的尝试还是有的],便趁着周末了解了一下相关的东西,在本地搭建了环境.实践表明,当你对一个东西

UPDATE 时主键冲突引发的思考【转】

假设有一个表,结构如下: root@localhost : yayun 22:59:43> create table t1 ( -> id int unsigned not null auto_increment, -> id2 int unsigned not null default '0', -> primary key (id) -> )engine=myisam; Query OK, 0 rows affected (0.00 sec) root@localhost

Navicat连接mysql出现2003——can't connect to mysql server on localhost(10061)引发的思考)

一:起因 (0)最近由于病了一场,闲暇时间(即生病期间)一直思考如下问题: 思考一:如何做一名合格的程序猿,怎么才能成为一名名副其实的程序猿? 思考二:还有就是到底,值不值得熬夜加班去搞研发(或转型或做相对轻松的其它IT岗位~~~对于这个问题,我一时无法给出答案,希望各位帮我分析一下,不胜感激!!!) (1)如果没有做到这一点你怎么能说,你是一名合格的程序猿 —— 安装程序或者运行开发程序... http://d.dxy.cn/detail/7870458http://d.dxy.cn/deta

黑马程序员---Objective-C基础学习---一道课后习题引发的思考

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一道课后习题引发的思考 /* 需求:设计一个类Point2D,用来表示二维平面中某个点 1> 属性 * double x * double y 2> 方法 * 属性相应的set和get方法 * 设计一个对象方法同时设置x和y * 设计一个对象方法计算跟其他点的距离 * 设计一个类方法计算两个点之间的距离 3> 提示 * C语言的math.h中有个函数:double pow(double

一个截取字符串函数引发的思考

背景 前些天,遇到这样一个问题,问题的内容如下: 要求编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串.但是要保证汉字不被截半个,如"我ABC", 4,截取后的效果应该为"我AB",输入"我ABC汉DEF", 6,应该输出为"我ABC",而不是"我ABC+汉的半个". 问题 刚看到这个问题的时候,以为还是很简单的,但写出来之后,发现并不是想要的效果.回想一下当时的思路,就发现刚开

【ROC曲线】关于ROC曲线、PR曲线对于不平衡样本的不敏感性分析说引发的思考

ROC曲线 在网上有很多地方都有说ROC曲线对于正负样本比例不敏感,即正负样本比例的变化不会改变ROC曲线.但是对于PR曲线就不一样了.PR曲线会随着正负样本比例的变化而变化.但是没有一个有十分具体和严谨地对此做出过分析和论证(至少我没有找到). 此处记为结论1: 结论1:PR曲线会随着正负样本比例的变化而变化:但是ROC曲线不会. 此处我就这一问题进行了详细的分析论证,并在这个过程中引发了很多思考. 首先,如何分析这个问题呢? 看下ROC曲线是由TPR和FPR组成的 下面我们这样来分析这个问题

《技术、沟通、协作,引发的思考》

<技术.沟通.协作,引发的思考> 01. 有些朋友私信问我,最近又在忙什么,很少看到我活跃了.其实,我在憋大招!我花了很多心思在项目上, 可以说,这是我工作以来,最重要的时刻,成败在此一举! 02. 我按着倒序来表述,也能谈谈我对于文章主题的思考.接下来的两周时间,我会与我的项目小团队,完美的与"理财运营中心"(我在互联网金融行业)实现功能联调测试.上线以后,整个公司理财营销业务的20%~50%的用户流量将正式走我们所开发的"智能营销体系(这是一个大数据挖掘应用的