作者 | 黄伟呢

来源 | 数据分析与统计学之美

本文说明

为什么要学习python?是因为不仅很多工作需要用到python,同时我们可以利用python做很多好玩儿的事儿。

比如说下面的3种用法:

  • 1.利用python给小猪佩奇换背景色;

  • 2.利用python将小猪佩奇切分为九宫格;

  • 3.利用python制作小猪佩奇动态二维码;

今天再教大家如何利用python将小猪佩奇切分为九宫格。

利用python将小猪佩奇切分为九宫格

将图片切分为九宫格的原理就是:找到图片对应位置的坐标,然后进行切割。由于是九宫格,我们切分的是3*3,然后利用双层循环遍历对应位置的坐标后,进行图片切割。

from PIL import Image
import sys
#将图片填充为正方形
def fill_image(image):width, height = image.size#选取长和宽中较大值作为新图片的,小的地方,用图片填充为等宽等高new_image_length = width if width > height else height#生成新图片[白底]new_image = Image.new(image.mode, (new_image_length, new_image_length), color='white')#将之前的图粘贴在新图上,居中if width > height:#原图宽大于高,则填充图片的竖直维度#(x,y)二元组表示粘贴上图相对下图的起始位置new_image.paste(image, (0, int((new_image_length - height) / 2)))else:new_image.paste(image, (int((new_image_length - width) / 2),0))return new_image
#切图
def cut_image(image):width, height = image.sizeitem_width = int(width / 3)item_height = int(height / 3)box_list = []#双重循环,生成9张图片基于原图的位置#注意:图片左上角是(0,0),右下角是(width,height)for i in range(0,3):for j in range(0,3):print((j*item_width,i*item_height,(j+1)*item_width,(i+1)*item_height))box = (j*item_width,i*item_height,(j+1)*item_width,(i+1)*item_height)box_list.append(box)image_list = [image.crop(box) for box in box_list]return image_list
#保存
def save_images(image_list):index = 1for image in image_list:image.save(str(index) + '.jpg')index += 1file_path = "zhuzhu.jpg"
image = Image.open(file_path)
image = fill_image(image)
image_list = cut_image(image)
save_images(image_list)

结果如下:

技术

用技术实现时序羽毛球动作预测

资讯

体验在元宇宙豪宅里开party

资讯

苹果市值达3万亿美元,创历史新高

资讯

这个AI模型火上GitHub热榜

分享

点收藏

点点赞

点在看

第二弹,坐地铁就能学会的3种「非常有趣」的 Python 玩法相关推荐

  1. 坐地铁就能学会的3种非常有趣的 Python 玩法

    作者 | 黄伟呢 来源 | 数据分析与统计学之美 本文说明 为什么要学习python?是因为不仅很多工作需要用到python,同时我们可以利用python做很多好玩儿的事儿. 比如说下面的3种用法: ...

  2. 变现利器!一文带你学会应用内添加「贴片广告」

    什么是贴片广告 贴片广告是一种在视频播放过程中插入的视频或图片广告.视频广告一般是15s, 可以点跳过按钮直接进入视频播放界面,也可以等广告展示结束自动进入视频播放界面. 贴片广告的优势 相较于其他形 ...

  3. 玩转微信应用号,「小程序」开发实操指南第一弹

    摘要: 怎样将一个「服务号」改造成为「小程序」?全球首个微信应用号开发教程第一弹. 微信应用号(小程序,「应用号」的新称呼)终于来了! 目前还处于内测阶段,微信只邀请了部分企业参与封测.想必大家都关心 ...

  4. 第二弹!谷歌大脑2017总结下篇:Jeff Dean梳理6大领域研究

    李杉 维金 编译自 Google Blog 量子位 出品 | 公众号 QbitAI 传奇一般的Jeff Dean今天发布了谷歌大脑2017总结的第二弹. 在这篇总结中,Jeff Dean详细论述了谷歌 ...

  5. 地铁怎么坐才不能做反_[第一次]第一次一个人坐地铁,我坐反了方向

    人生中总会有很多的第一次,很多时候,第一次做一件事情,我们总是难免会出错.记得我第一次一个人坐地铁,我就出错了,坐反了方向,因此多费了一番周折. 记得那时,我在外面认识的朋友因为和我不在一个地方了,那 ...

  6. CSS 动画相关属性动态实例大全(82种),2023年祝福第二弹(送你一只守护兔)(下),守护兔源代码免费下载

    2023年春节祝福第二弹--送你一只守护兔(下) CSS 动画相关属性动态实例大全(82种).守护兔源代码免费下载 本文目录: 五.CSS3 动画相关属性实例大全 (1).CSS3的动画基本属性 (2 ...

  7. 【转载】byvoid阿里第二弹:不是技术牛人,如何拿到国内IT巨头的Offer

    [转载]byvoid阿里第二弹:不是技术牛人,如何拿到国内IT巨头的Offer 不久前,byvoid面阿里星计划的面试结果截图泄漏,引起无数IT屌丝的羡慕敬仰.看看这些牛人,NOI金牌,开源社区名人, ...

  8. 第一次坐地铁过程描述

    高德 地图导航的使用 搜索到一个位置-点击右下角路线-上方选择公交地铁,会有各种合适的地铁路线 地铁口 检测是否携带违规物品 Metro大都会软件 进闸机口(无需买票,软件设置成自动扣费) 注意选择几 ...

  9. 【会声会影素材】倒计时素材下载第二弹

    上期送上的倒计时素材获得大家的好评,于是小编趁热打铁,送上会声会影倒计时素材素材下载第二弹. 图1:倒计时素材下载 此次小编为大家带来的倒计时素材下载的种类是立体感十足的,如上图一样,看似平面,实则立 ...

最新文章

  1. 【BZOJ】1726 [Usaco2006 Nov]Roadblocks第二短路
  2. CentOS系统启动流程
  3. java 库存 进销存 商户 多用户管理系统 SSM springmvc 项目源码
  4. redhat linux新建用户,linux redhat 添加用户
  5. 好物推荐 | 轻薄神器,妈妈再也不用担心我的颈椎了
  6. 易优cms问一下大家 二级目录 真的完全不能装吗
  7. 听说你还没学Spring就被源码编译劝退了?30+张图带你玩转Spring编译
  8. 如何让oracle用户不过期,Oracle用户密码设为不过期的两种方法
  9. python百度贴吧发帖签到_【Python】某度贴吧签到脚本[云函数专用版](白嫖实现每日自动签到)...
  10. linux下动态域名解析
  11. 给2011年的MacBook Pro和MacBook Air升级到最新系统和做双系统时遇到的问题
  12. 极简生活牙膏,让你的口腔清新一整天!
  13. 3825. 逃离大森林
  14. 跨专业考研计算机难,盘点哪些专业跨专业考研难度大
  15. ukf实测信号的预测 matlab,ukf的matlab实现
  16. 数据迁移——技术选型
  17. 云服务器和VPS有什么区别?
  18. Sql server语句(增删改查)
  19. 谐振电路 - 01 介绍
  20. 从站代码迁移,基于stm32f103与LAN9252

热门文章

  1. 从HelloWorld看Knative Serving代码实现
  2. @芥末的糖----------《后端加密》
  3. java高并发编程(二)
  4. Java并发之synchronized
  5. 安装配置Emacs-rails
  6. 本地连接受限制或无法连接怎么办?
  7. JavaScript写XML
  8. shell版俄罗斯方块
  9. Using Regular Expression to validate a Guid
  10. 云消防大数据_大数据在智慧消防中的应用