恰逢公司成立10周年,发短信以贺。
文字不多,上图片;一张不够,来九张?
太分散,那就用一大张分成九份——九宫格图片。
九宫格图片的实现——九行python代码
逢年过节的,小编也是耐不住年底的凑那个热闹劲。
图片有了,以下测试代码中,长宽像素是3的倍数,比如1080x1080,这样每条边刚好3等分。
好像网上有工具,不过多需要提供你的个人信息以换取。小编个人信息不足为虑,但是心有不甘,干脆直接写个代码来实现。这里分享代码如下:
import cv2import numpy as npdef split_image(image_path): img = cv2.imread(image_path) #读取图片文件 -row-1 imgheight=img.shape[0] #读取图片的高度-row-2 imgwidth=img.shape[1] #读取图片的宽度-row-3 m = (imgheight//3 #高度的1/3取整-row-4 n = imgwidth//3 #宽度的1/3取整-row-5 #均分图片为9部分-row-6 tiles = [img[x:x+m,y:y+n] for x in range(0,imgheight,m) for y in range(0, imgwidth, n)] #将每部分图按序命名后保存,保存路径请自己设置 for i, tile in enumerate(tiles): #-row-7 cv2.imwrite(yourpathname/+ftile_{i}.png, tile) #-row-8if __name__ == __main__: split_image(yourpathname/yourimagefile.png) #指定某个文件夹下的图片文件名,文件扩展名不限于png文件-row-9
需要安装python插件,那就简单安装:
pip install opencv-python
其他的如果需要,依葫芦画瓢进行安装。
如果图片的长宽刚好是3的倍数,那么运行该程序,会将原图等分成9份。否则生成的图片数量会多于9个。后续作为服务器的代码处理中,小编让图片的边长强制成为3的倍数后再分割。再次提醒大家测试前面的代码时,需要留意这个部分。
微信很少发,后续应该是将这9个分图(文件名中从0~8编号)按顺序插入你要发布的微信图框中(对应的1~9)就可以了。
效果如下:
图片编号和顺序
图片名称可以自己在代码中另外设定。按照当前的输出设置,编号及顺序从0~8如上图所示。
刚好要到年底,大家发短信更加频繁,小编后续也许会直接出一个可运行的窗口程序,这样打开程序,挑选文件和输出文件就可以更加方便处理了。不过手边放个电脑确实不太方便。
每个人手边电脑不一定一直有,但是手机一定有,单纯地用软件实现九宫格却不可能让每个人的拿着手机的同时还揣个电脑。想到之前公司的同事提供的一个树莓派,就拿它做个文章了。
如果用树莓派布置一个web服务器,由后台提供这个功能,前端登录后上传图片,然后拿到回传的九宫格图片,不就避免了很多麻烦?至少可以让全家共享了。
树莓派九宫格服务器
step-1: 树莓派建操作系统,建编程环境—乱是因为线多;
step-2:编写调试前后端代码;
step-3:运行web,用手机登录页面,从相册或者文件夹里选图片。
其实也想到app或者微信小程序会提供便捷,但是注册之类的需要是否付费或者提供资质什么的让小编暂不考虑,关键还不会那玩意。
封装和封测的区别
行业协会标准免费下载|CALI 0802.5《多功能路灯技术规范%20第5部分:传感器要求与试验(终版)》
国仪量子在列!安徽省2023年重点项目清单公布
SPWM逆变器的死区时间所产生的谐波影响及有益设计研究
给电脑配风扇时要注意什么
如何利用树莓派实现家用微信图片九宫格web服务器
Maxwell中两种用户自定义材料库的实现方法
汽车界全固态电池、自动驾驶网络和5G技术未来的创新猜想
全球机器人市场规模预计2024年突破650亿美元
北汽新能源与比亚迪相比被高估了,与蔚来比则是被严重低估
华为六周卖出160万台Mate60!
Microsoft对“开始”菜单进行了直观的更改
基于NXP KV30电机专用MCU的ESC-20A-Nano3电调
热水器内胆接口去氧化皮去污打磨应用!
LED企业净利润大幅下滑,前期大量并购埋下的祸根
华为手机更新鸿蒙系统教程
谷歌Play Instant的AR工具将上线
关于Linux弹窗警告“Low Disk”的解决方案
2017年DRAM产业第四季度营收再创新高,2018年价格持续上涨
英特尔发布5G调制解调器:支持6GHZ和毫米波频段