PIL包中图像的mode参数

在这里的第一篇。

这篇的是为了说明PIL库中图像的mode参数。

我做的事情是:

  1. 在本地找了jpg的图,convert为不同mode,将不同的图截取做了个脑图,有个直观的感觉吧。
  2. 把不同mode的图通过np.array()转化为array, 打印出array的shape, 和array[0, 0]的值, 便于理解不同mode的通道和像素值的存储。

1 部分结果见下:

2 部分代码和结果:

1# 将不同模式的图片打印出shape 和 [0, 0]像素点的值 2from PIL import Image 3import matplotlib.pyplot as plt 4image = Image.open('images/tower.jpg') # 本地一个文件 5mode_list = ['1', 'L', 'I', 'F', 'P', 'RGB', 'RGBA', 'CMYK', 'YCbCr' ] 6for mode in mode_list: 7 img = image.convert(mode) 8 img_data = np.array(img) 9 print('img_{:>1}.shape: {}' .format(mode, img_data.shape)) 10 print('img_{:>}_data[0, 0]: {}'.format(mode, img_data[0, 0])) 11 print('---') 12 13# 以下为output 14 15img_1.shape: (1276, 1920) 16img_1_data[0, 0]: False 17--- 18img_L.shape: (1276, 1920) 19img_L_data[0, 0]: 88 20--- 21img_I.shape: (1276, 1920) 22img_I_data[0, 0]: 88 23--- 24img_F.shape: (1276, 1920) 25img_F_data[0, 0]: 88.94599914550781 26--- 27img_P.shape: (1276, 1920) 28img_P_data[0, 0]: 131 29--- 30img_RGB.shape: (1276, 1920, 3) 31img_RGB_data[0, 0]: [ 51 97 147] 32--- 33img_RGBA.shape: (1276, 1920, 4) 34img_RGBA_data[0, 0]: [ 51 97 147 255] 35--- 36img_CMYK.shape: (1276, 1920, 4) 37img_CMYK_data[0, 0]: [204 158 108 0] 38--- 39img_YCbCr.shape: (1276, 1920, 3) 40img_YCbCr_data[0, 0]: [ 88 160 100] 41--- 42 43 以上可对mode参数有所了解,第一篇拙劣,还望指正。 44 45  最后一点关于颜色模式的,供备注用。
  1. RGB 为真色彩模式, 可组合为 256 x 256 x256 种, 打印需要更改为 CMYK模式, 需要注意数值溢出的问题。
  2. HSB 模式(本篇没有涉及),建立基于人类感觉颜色的方式,将颜色分为色相(Hue),饱和度(Saturation),明亮度(Brightness),这里不详细展开。
  3. CMYK模式,应用在印刷领域,4个字母意思是青、洋红、黄、黑,因为不能保证纯度,所以需要黑。
  4. 位图模式,见1, 颜色由黑和白表示(True, False)。
  5. 灰度模式,只有灰度, 所有颜色转化为灰度值,见L,I,F。
  6. 双色调模式(未有涉及),节约成本将可使用双色调。
  7. Lab模式(未涉及,ps内置),由3通道组成(亮度,a,b)组成,作为RGB到CMYK的过渡。
  8. 多通道模式,删除RGB,CMYK,Lab中某一个通道后,会转变为多通道,多通道用于处理特殊打印,它的每个通道都为256级灰度通道。
  9. 索引颜色模式,用在多媒体和网页,通过颜色表查取,没有则就近取,仅支持单通道,(8位/像素)。

end

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

MySQL在INSERT IGNORE未新增记录时避免AUTO_INCREMENT自增

在MySQL5.7中做INSERTIGNORE时发现,即使INSERT未成功执行,表的自增主键却自动加1了,在某些情况下需要避免这种行为.需要修改的变量是 innodb\_autoinc\_lock\_mode,将其设为0后,在INSERT未成功执行时不会自增主键.innodb\_autoinc\_lock\_mode在MySQL各版本

Linux下使用popen()执行shell命令

函数原型:  include“stdio.h”  FILE_popen(constchar_command,constchar\mode)  参数说明:  command:是一个指向以NULL结束的shell命令字符串的指针。这行命令将被传到bin/sh并使用c标志,shell将执行这个命令。 

mysql 命令集

sql\_mode定义了mysql应该支持的sql语法,数据校验等select@@sql_mode;属性说明ONLY\_FULL\_GROUP\_BY对于GROUPBY聚合操作,如果在SELECT中的列,没有在GROUPBY中出现,那么将认为这个SQL是不合法的,因为列不在GROUPBY从句中STRICT\_

Python使用Plotly绘图工具,绘制柱状图

使用Plotly绘制基本的柱状图,需要用到的函数是graph\_objs中Bar函数通过参数,可以设置柱状图的样式。通过barmod进行设置可以绘制出不同类型的柱状图出来。我们先来实现一个简单的柱状图:coding:utf8importplotlyaspyimportplotly

Go加密解密之DES

一、DES简介DES(DataEncryptionStandard)是对称加密算法,也就是加密和解密用相同的密钥。其入口参数有三个:key、data、mode。key为加密解密使用的密钥,data为加密解密的数据,mode为其工作模式。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解