python读取图片颜色值并生成excel像素画的方法实例


Posted in Python onFebruary 19, 2021

像素画:

python读取图片颜色值并生成excel像素画的方法实例

需要用到的包:

进度条:progressbar

pip install progressbar -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

excel:操作包openpyxl

pip install openpyxl -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

食用指南:

文件目录:

python读取图片颜色值并生成excel像素画的方法实例

运行:

进入程序img2excel_user.py 所在目录,输入:

python img2excel_user.py 图片地址 excel保存地址(要加上excel名字)

例如:

python img2excel_user.py D:\myPythonProgram\img2excel\3.jpg D:\myPythonProgram\img2excel\3.xlsx

注意:

进入二级目录的方法:cd .\文件夹名

python读取图片颜色值并生成excel像素画的方法实例

若图片太大,生成的文件会打不开,所以准备的图片不能太大:

python读取图片颜色值并生成excel像素画的方法实例

源码:

# -*- coding: utf-8 -*-

from PIL import Image
import openpyxl
import openpyxl.styles
from openpyxl.styles import PatternFill
from openpyxl.utils import get_column_letter
from progressbar import *

def RGB_to_Hex(rgb):
 """
 RGB颜色转换成16进制颜色
 :param rgb:
 :return:
 """
 RGB = rgb.split(',') # 将RGB格式划分开来
 color = ''
 for i in RGB:
 num = int(i)
 # 将R、G、B分别转化为16进制拼接转换并大写 hex() 函数用于将10进制整数转换成16进制,以字符串形式表示
 color += str(hex(num))[-2:].replace('x', '0').upper()
 return color

def img2excel(img_path,excelout_path):
 """
 图片转换成excel
 :param img_path: 图片地址
 :param excelout_path: excel保存地址
 :return:
 """
 img_src = Image.open(img_path)
 #宽高
 img_width=img_src.size[0]
 img_height=img_src.size[1]
 print("图片宽%s,高%s"%(img_width,img_height))
 # 类型
 # print(img_src.mode)
 if img_src.mode != "RGB":
 img_src = img_src.convert('RGB')

 str_strlist = img_src.load()
 wb=openpyxl.Workbook()
 wb.save(excelout_path)
 wb=openpyxl.load_workbook(excelout_path)
 sheet=wb["Sheet"]
 sheet.title="img2excel"
 cell_width = 1.0
 cell_height = cell_width * (2.2862 / 0.3612)
 print("正在疯狂生成excel,请耐心等待...")
 #进度条
 widgets=['进度:',Percentage(),'',Bar('#'),'',Timer(),' ', ETA(), ' ']
 pb=ProgressBar(widgets=widgets)
 for w in pb(range(img_width)):
 for h in range(img_height):
 data = str_strlist[w,h]
 # 把元组rgb颜色变成字符串,转换成16进制颜色(1,2,3)-->'1,2,3'
 color=str(data).replace("(","").replace(")","")
 #16进制的颜色,不带前面#号的,要#自己拼接到color前面即可
 color=RGB_to_Hex(color)
 # 设置填充颜色为color,solid参数表示填充实色
 fille=PatternFill("solid",fgColor=color)
 sheet.cell(h+1,w+1).fill=fille
 print("生成完成,正在设置单元格格式...")
 for i in range(1, sheet.max_row+1):
 sheet.row_dimensions[i].height=cell_height
 for i in range(1, sheet.max_column+1):
 sheet.column_dimensions[get_column_letter(i)].width = cell_width
 print('格式设置完成,正在保存excel...')
 wb.save(excelout_path)
 img_src.close()
 print("保存excel成功!请打开[%s]查看"%excelout_path)



if __name__=='__main__':
 import sys,os
 if len(sys.argv)!=3:
 print("请输入图片地址和excel保存的地址\n"
 "例如命令行输入 python img2excel_user.py D:/result.png D:/outExcel.xlsx")
 sys.exit(0)
 else:
 img_virify=['.jpg','.png','.gif','.bmp','.jpeg','.jpe','.jfif']
 excel_virify=['.xlsx','.xlsm','.xltx','.xltm']

 # 图片地址
 img_path=sys.argv[1]
 # excel保存地址
 excelout_path=sys.argv[2]

 endName=os.path.splitext(img_path)
 if endName[1] not in img_virify:
 print("请选择支持的图片类型",img_virify)
 sys.exit(0)

 endName_excel=os.path.splitext(excelout_path)
 if endName_excel[1] not in excel_virify:
 print("excel 格式不支持,请选择支持的格式",excel_virify)
 sys.exit(0)
 img2excel(r""+img_path+"",excelout_path)

运行:

python读取图片颜色值并生成excel像素画的方法实例

原图:

python读取图片颜色值并生成excel像素画的方法实例

效果图:

python读取图片颜色值并生成excel像素画的方法实例

python读取图片颜色值并生成excel像素画的方法实例
python读取图片颜色值并生成excel像素画的方法实例

总结

到此这篇关于python读取图片颜色值并生成excel像素画的文章就介绍到这了,更多相关python读取图片颜色值生成excel像素画内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python 实现网上商城,转账,存取款等功能的信用卡系统
Jul 15 Python
zookeeper python接口实例详解
Jan 18 Python
pandas 对每一列数据进行标准化的方法
Jun 09 Python
selenium+python 对输入框的输入处理方法
Oct 11 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
Aug 05 Python
Python如何使用k-means方法将列表中相似的句子归类
Aug 08 Python
pandas factorize实现将字符串特征转化为数字特征
Dec 19 Python
500行python代码实现飞机大战
Apr 24 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
Apr 29 Python
详解python with 上下文管理器
Sep 02 Python
python 基于opencv去除图片阴影
Jan 26 Python
深度学习tensorflow基础mnist
Apr 14 Python
python 基于DDT实现数据驱动测试
Feb 18 #Python
详解解决jupyter不能使用pytorch的问题
Feb 18 #Python
python 使用openpyxl读取excel数据
Feb 18 #Python
Python用SSH连接到网络设备
Feb 18 #Python
python 实现IP子网计算
Feb 18 #Python
详解python3 GUI刷屏器(附源码)
Feb 18 #Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
Feb 18 #Python
You might like
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
2018/08/15 PHP
php session_decode函数用法讲解
2019/05/26 PHP
javascript 对象数组根据对象object key的值排序
2015/03/09 Javascript
js实现跨域访问的三种方法
2015/12/09 Javascript
jquery插件bootstrapValidator数据验证详解
2016/11/09 Javascript
值得分享的JavaScript实现图片轮播组件
2016/11/21 Javascript
node.js中的事件处理机制详解
2016/11/26 Javascript
js判断数组是否包含某个字符串变量的实例
2017/11/24 Javascript
一步步教你利用webpack如何搭一个vue脚手架(超详细讲解和注释)
2018/01/08 Javascript
JS抛物线动画实例制作
2018/02/24 Javascript
[47:50]Secret vs VP 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
理解Python中的With语句
2015/02/02 Python
python 排序算法总结及实例详解
2016/09/28 Python
用virtualenv建立多个Python独立虚拟开发环境
2017/07/06 Python
利用python获取Ping结果示例代码
2017/07/06 Python
使用python将图片格式转换为ico格式的示例
2018/10/22 Python
pygame游戏之旅 按钮上添加文字的方法
2018/11/21 Python
python实现从pdf文件中提取文本,并自动翻译的方法
2018/11/28 Python
Tensorflow之MNIST CNN实现并保存、加载模型
2020/06/17 Python
python使用建议技巧分享(三)
2020/08/18 Python
利用css3径向渐变做一张优惠券的示例
2018/03/22 HTML / CSS
使用 CSS3 中@media 实现网页自适应的示例代码
2020/03/24 HTML / CSS
Manuka Doctor英国官网:真正的麦卢卡蜂蜜和护肤品
2018/10/26 全球购物
什么是网络协议
2016/04/07 面试题
应届大专毕业生个人自荐信
2013/09/22 职场文书
网上开商店的创业计划书
2014/01/19 职场文书
优秀士兵个人事迹材料
2014/01/19 职场文书
公司联欢晚会主持词
2014/03/22 职场文书
银行内勤岗位职责
2014/04/09 职场文书
《骑牛比赛》教后反思
2014/04/22 职场文书
踏青活动策划方案
2014/08/19 职场文书
地球一小时活动总结
2015/02/27 职场文书
2016大学生暑期社会实践心得体会
2016/01/14 职场文书
小学科学课教学反思
2016/02/23 职场文书
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL
vue实现书本翻页动画效果实例详解
2022/04/08 Vue.js