正当人们喜迎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)
复制
最后再次祝大家新年快乐!
最后修改时间:2022-01-12 09:36:10
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
步骤翔实,效果美如画!
3年前

评论
您已成功参加本次SQL“祝福”大赛,将有机会角逐各项大奖!
中奖名单将于1月21日公布,请持续关注。
3年前

1