79,496
社区成员




正当人们喜迎2022新年的时刻,防不胜防的新冠病毒突然在西安出现,发展迅猛,整个西安按下了暂停键。封闭在家的日子,最近在学习Mysql,刚好墨天轮推出新年SQL“祝福”大赛,就拿Mysql的环境试试手,出来的效果感觉可以拿出来当一个吉祥物祝大家新年快乐,虎年行大运!
看到活动规则之后,对于绘制2022年新年福字的大致思路就是:
(1)找一个好看的图,转成灰度图或二位图
(2)转化之后的图遍历循环添加进数据库表当中
(3)对最后的结果直接使用select查询显示
按照这个思路,一步一步实现,中间也借鉴了网友的一些方法,虽然碰到了一些问题,后面也都顺利解决了。
下面先贴图(第一个为原图,后一个为SQL查询在xshell里的显示效果):
第一步:转为灰度图
第一步:转为灰度图
from PIL import Image
img = Image.open('E:\\python学习\\py福字\\福.jpg')
# 模式L”为灰色图像
Img = img.convert('L')
Img.save("E:\\python学习\\py福字\\福1.jpeg")
第二步:通过python编程将图片数据插入至数据库,在这之前在mysql库中创建了表Images
CREATE TABLE Images(Id INT PRIMARY KEY AUTO_INCREMENT, Data MEDIUMBLOB);
#!/usr/bin/python # -*- coding: UTF-8 -*- import MySQLdb import os from PIL import Image def init(): # 打开数据库连接 db = MySQLdb.connect(host="127.0.0.1", port=3307, user="root", passwd="", db="mysql",charset='utf8' ) #连接到数据库 # 使用cursor()方法获取操作游标 cursor = db.cursor() # SQL 插入语句 sql = "INSERT INTO Images(Data) VALUES " img=Image.open("/tmp/sympy/福1.jpeg") img=img.resize((130,219)) w,h=img.size for c in range(h): f="('"; for j in range(w): if(img.getpixel((j,c))>100): f+=(' ') else: f+=('**') if j==w-1: f+="')" sql +=f+','; try: # 执行sql语句 sql=sql.rstrip(',') cursor.execute(sql) # 提交到数据库执行 db.commit() except: # 发生错误时回滚 db.rollback() db.close() if __name__=="__main__": init()
第三步:在mysql数据库中查询并呈现福字,因为在xshell里运行,所以将会话属性更改了一下,背景是红色,文字设成了黄色,典型的具有中国特色的西红柿鸡蛋色,哈哈,以下为SQL绘制的福袋,希望大家喜欢,有点大,请ctrl+向下滚轮。
use mysql;
select data from Images;
在SQL中的显示
mysql> select data from Images;
+------------------------------------------------------------------------------------------------------------------------------------+
| data |
+------------------------------------------------------------------------------------------------------------------------------------+
| |
| ** |
| ** **** ******** **** **** |
| ** ** ** ****** **** **** |
| ** **** ** **** ************ ********************** ****** ** |
| ** **** ****** ************************************** ****** |
| ** ****** ** ****** ************************** ******** **** ** |
| **** ** ********************** ** ****** |
| **************** **** ********************** ****** ********** |
| ********** ** ******** ************************ ******** ************ |
| ******** ************ ** ********** ******** |
| ******** ************ ************************** ********** ******** |
| ****** ********** ******************** ****** ********** ****** |
| ****** ********** ********************** ****** ******** ****** |
| ****** ****************** ************ **** ******** ****** |
| ****** ****************************** **** ********** **** |
| ************************************ **************** ****** |
| ************** ************ ****** ******** ****** |
| ********** ****** ************** **** ********** |
| ** ********** ********** ******** ** ** |
| ** **** **** ** ** **** **** ** |
| ** ************ ** ** ********** ** **** |
| ******** ******** **** **** **** ********** |
| ********** **** ************** ************ |
| **************************** ******** ************ ************** |
| **************************** ******** **************************** |
| **************************** ********** ************ **** ******** |
| **************************** ********** ************** ************ |
| ****************************** ************** ************ ************** |
| ****************************** **************** ********** ************** |
| ********************************** ****************** ********************************** |
| ************************************ ********************************************************** |
| ****************** ******************************************************************************** |
| ************ ************************** ******************************************** |
| ************** ******************** **************************************** |
| **************** **************** ** **** ************************************ |
| ********************************** ** ************************************ |
| ******************************** ** ** ******************************** |
| ******************************** ** ** ******************************** |
| ****************************** ** **** ******************************** |
| ****************************** ** ** ********** ************************ ****************************** |
| ****************************** ** **************** ********************** ** ****************** ********** |
| ****************************** ** ****************** ****** |
| **************************** ** ** **************** ****** |
| **************************** ** **** ** **************** ****** |
| **************************** ****************** ******************** ** **************************** |
| **************************** ** **************** ********** ******** ************************** |
| **************************** ** ** ****** **** ** **************************** |
| **************************** ** ** ** ** ****** ****** ** **************************** |
| ******** **** ************ ** **** ** ** ******************** ** **************************** |
| ******** ************** ** **** ** ** ****************** ** **************************** |
| ********** ************** ** **** **** ** ** **************************** |
| ******** ************ ** **** **** ** ******************** ** **************************** |
| ****** **** ************ ** **** **** ** ******************** ** ************************** |
| ************************** ** **** ******** **** ****** **** ** ************************** |
| ************************** ** **** ** **** **** **** ** ** ************************** |
| ************************** ** **** ******** **** **** **** ** ************************** |
| **************************** **** ******** ******************** ** **************************** |
| ************************** ** **** ********** **** **** ** ** **************************** |
| ************************** **** **** **** **** **** **** ** ************************** |
| ************************** ** **** **** **** **** **** ****** **** ********** ************ |
| ************************** ** ** ******************** ** ********** ********** |
| **************************** ** ** ************ ********** |
| **************************** ** ** **************************** |
| **************************** ** ** ****************************** |
| ************** ******** ** ** ****************************** |
| ************ ************ ** ** ****************************** |
| ********** ************ **** ****** ******************************** |
| ******** ** ****************** ********************************** |
| ************************************** **************************************** |
| ****************************************************************************** |
| ************************************************************************** |
| ****************************************************************** |
| ******************************************************** |
| ********************************************** |
| ************************** ** |
| ** ** |
| ** ** |
| ** ** |
| ** ** |
| ** ** |
| ** ** |
| ** ** |
| ** ** |
| ** ** ** |
| ******** ** ********** ** |
| ************ ** ********** ** |
| ******************************** ** |
| ******************************** ** |
| ******************************** ** |
| ******************************** ** |
| ******************************** ** |
| ****************************** ** |
| **************************** ** |
| ************************ ****** ** ******** |
| ********************** ************ ** ************ |
| ****************** ****************************** |
| ************** ******************************** |
| ********** ******************************** |
| ****** ****************************** |
| ****************************** |
| **************************** |
| ************************** |
| ********************** |
| ********************** |
| ****************** |
| ************** |
| ******** |
| |
| |
+------------------------------------------------------------------------------------------------------------------------------------+
110 rows in set (0.00 sec)
最后再次祝大家新年快乐!