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爬虫
Dec 25 Python
Python六大开源框架对比
Oct 19 Python
Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
Aug 31 Python
python thrift搭建服务端和客户端测试程序
Jan 17 Python
python实现字符串和字典的转换
Sep 29 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
Feb 11 Python
Python中输入和输出(打印)数据实例方法
Oct 13 Python
Python大数据之使用lxml库解析html网页文件示例
Nov 16 Python
基于spring boot 日志(logback)报错的解决方式
Feb 20 Python
python实现自动打卡的示例代码
Oct 10 Python
运行python提示no module named sklearn的解决方法
Nov 29 Python
Python实现学生管理系统并生成exe可执行文件详解流程
Jan 22 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
国产动画《伍六七》原声大碟大卖,啊哈娱乐引领音乐赋能IP的新尝试
2020/03/08 国漫
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
2007/08/19 PHP
在同一窗体中使用PHP来处理多个提交任务
2008/05/08 PHP
php读取excel文件的简单实例
2013/08/26 PHP
PHP+AjaxForm异步带进度条上传文件实例代码
2017/08/14 PHP
php的lavarel框架中join和orWhere的用法
2020/12/28 PHP
jQuery 白痴级入门教程
2009/11/11 Javascript
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
jquery监控数据是否变化(修正版)
2011/04/12 Javascript
js动态生成指定行数的表格
2013/07/11 Javascript
html+js实现动态显示本地时间
2013/09/21 Javascript
JavaScript的jQuery库插件的简要开发指南
2015/08/12 Javascript
浅析javascript的return语句
2015/12/15 Javascript
浅析JS异步加载进度条
2016/05/05 Javascript
JS作用域深度解析
2016/12/29 Javascript
Vue.js 2.0窥探之Virtual DOM到底是什么?
2017/02/10 Javascript
微信小程序中的onLoad详解及简单实例
2017/04/05 Javascript
vue获取DOM元素并设置属性的两种实现方法
2017/09/30 Javascript
webpack中的热刷新与热加载的区别
2018/04/09 Javascript
ES6与CommonJS中的模块处理的区别
2018/06/13 Javascript
webpack4+Vue搭建自己的Vue-cli项目过程分享
2018/08/29 Javascript
jquery获取img的src值实例介绍
2019/01/16 jQuery
Python的Bottle框架中返回静态文件和JSON对象的方法
2015/04/30 Python
Python面向对象程序设计构造函数和析构函数用法分析
2019/04/12 Python
详解Python 定时框架 Apscheduler原理及安装过程
2019/06/14 Python
wxPython实现绘图小例子
2019/11/19 Python
python框架Django实战商城项目之工程搭建过程图文详解
2020/03/09 Python
在python里使用await关键字来等另外一个协程的实例
2020/05/04 Python
Python Tkinter实例——模拟掷骰子
2020/10/24 Python
一家专门做特卖的网站:唯品会
2016/10/09 全球购物
Chicco婴儿用品美国官网:汽车座椅、婴儿推车、高脚椅等
2018/11/05 全球购物
戴森西班牙官网:Dyson西班牙
2020/02/04 全球购物
工商管理本科毕业生求职信范文
2013/10/05 职场文书
财政专业求职信范文
2014/02/19 职场文书
乡镇三项教育实施方案
2014/03/30 职场文书
5s标语大全
2014/06/23 职场文书