当前位置: 首页 > 编程日记 > 正文

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

fbc9b2acb3bde0b53994ce14549ea27b.gif

作者 | 黄伟呢

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

本文说明

为什么要学习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)

结果如下:4e85168c8d9cd80624ab8292168784fd.png

58e734ef4349e64e72f38a663dddf208.gif

1fe14178dc81f7111cc5a3f3cc3bc3c0.png

技术

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

资讯

体验在元宇宙豪宅里开party

资讯

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

资讯

这个AI模型火上GitHub热榜

9714d5066af30001b48485529fe97d4f.png

分享

babdb21fb27b9bd07f1305044bcd4181.png

点收藏

e593af72dea52cddc28e2a04f2011f9b.png

点点赞

a9ad5326f0857fa687e1772bbfd36db1.png

点在看

相关文章:

php比较长的configure

原先的字串./configure --prefix/usr/local/php --with-apxs2/usr/local/apache2/bin/apxs --enable-zip --enable-calendar --with-mysql/usr/local/mysql --with-pdo-mysql/usr/local/mysql --with-iconv/usr/local/libiconv --with-curl/usr/local/curl --with-gd/usr/local…

用mpvue实现的微信小程序版cnode社区

五一放假,没出去玩,想熟悉下vue的开发流程,又想体验下mpvue,于是写了个练手项目。一个用mpvue实现的cnode微信小程序版。 代码在仓库。欢迎各位star、fork、issue、pr。目前已经完成了百分之80的功能。个人感觉这个项目还是非常适…

PHP编译安装

#wget http://museum.php.net/php5/php-5.2.6.tar.gz (下载php源码) http://cn.php.net/releases/ 可以找到 #tar zxvf php-5.2.6.tar.gz #cd php-5.2.6 #./configure --prefix/usr/local/php --with-mysql/usr/local/mysql --with-apxs2/usr/local/apa…

Python 办公自动化,一键给PDF文件加密,超方便

作者 | 欣一来源 | Python爱好者集中营今天给大家做一个给PDF文件加密的GUI界面(图形用户界面),方便现在的一些上班族白领们使用,尤其是需要给一些比较重要的PDF文件加密的时候,下面我们来看具体的步骤给PDF文件加密首先我们需要清楚的是如何…

YUM安装多个(多实例) Mysql

2019独角兽企业重金招聘Python工程师标准>>> 这里使用的是MYSQL的percona分支 先安装repo包 yum install percona-release-0.0-1.x86_64.rpm -y 想安装5.6的把5.5替换就行了,5.6的太耗内存了-。- yum install Percona-Server-server-55.x86_64 Percona-Server-clien…

scala可变长度参数函数

2019独角兽企业重金招聘Python工程师标准>>> scala可变长度参数函数只需要在参数列表的最后放一个星号,实验如下: def main (args:Array[String]){argsfun("Runoob", "Scala", "Python")} def argsfun(args:St…

3000 字推荐一个可视化神器,50 行 Python 代码制作数据大屏

作者 | 俊欣来源 | 关于数据分析与可视化今天小编给大家分享一个制作数据大屏的工具,非常的好用,100行左右的Python代码就可以制作出来一个完整的数据大屏,并且代码的逻辑非常容易理解。PywebIO介绍Python当中的PywebIO模块可以帮助开发者在不…

使用Varnish+ESI实现静态页面的局部缓存

页面静态化是搭建高性能网站必用的招式之一,页面静态化可以有效提升系统响应速度,同时也有利于搜索引擎优化。但在页面静态化后,静态页面之间包含(例如所有的静态页面包含页头、页脚)以及静态页面中的局部信息的动态更…

The Apply method of function object

2019独角兽企业重金招聘Python工程师标准>>> http://webreference.com As explained in the previous page, JavaScript 1.3 includes two new methods for the Function object, call() andapply(). The apply() method is a variation on the call() method. The …

资源 | 100+个自然语言处理数据集大放送,再不愁找不到数据!

奉上100多个按字母顺序排列的开源自然语言处理文本数据集列表(原始未结构化的文本数据),快去按图索骥下载数据自己研究吧! 数据集 Apache软件基金会公开邮件档案:截止到2011年7月11日全部公开可用的Apache软件基金会邮…

Java中ArrayList源码分析

一、简介 ArrayList是一个数组队列,相当于动态数组。每个ArrayList实例都有自己的容量,该容量至少和所存储数据的个数一样大小,在每次添加数据时,它会使用ensureCapacity()保证容量能容纳所有数据。 1.1、ArrayList 的继承与实现接…

介绍三种绘制时间线图的方法

作者 |周萝卜来源 |萝卜大杂烩今天我们再来分享几种不同的制作方法,大家可以自行比较下各种方法的优劣。Matplotlib 制作Matplotlib 作为 Python 家族最为重要的可视化工具,其基本的 API 以及绘制流程还是需要掌握的。尤其是该库的灵活程度以及作为众多工…

phpize是什么

安装php(fastcgi模式)的时候,常常有这样一句命令:/usr/local/webserver/php/bin/phpize 一、phpize是干嘛的? phpize是什么东西呢?php官方的说明: http://php.net/manual/en/install.pecl.phpiz…

C语言比较好的风格梳理

errno int err;tb malloc(sizeof(struct xtracer_table));if (!tb) {err errno;fprintf(stderr, "%s:%d, errno:%d, %s\n",__func__, __LINE__, err, strerror(err));return NULL;} 转载于:https://www.cnblogs.com/muahao/p/8979144.html

Linux下Memcache服务器端的安装

Linux下Memcache服务器端的安装服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 。下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz http://memcached.googlecode.com/files/memcached-1.4.9.tar.gz 另外&#…

如何用技术恢复模糊的图像?在线教学…

作者 |小白 来源 |小白学视觉 有人认为恢复模糊的图像是不可能的,因为会丢失信息。但我对这个问题进行了很多思考,并认为如果输出图像的大小与输入图像的大小相同,那实际上是可能的!这样,输出就有足够的像素/信息来恢复…

数据库创建索引的原则

数据库建立索引的原则 铁律一:天下没有免费的午餐,使用索引是需要付出代价的 索引的优点有目共睹,但是,却很少有人关心过采用索引所需要付出的成本。若数据库管理员能够对索引所需要付出的代价有一个充分的认识,也就不…

Linux上实现ssh免密码登陆远程服务器

平常使用ssh登陆远程服务器时,都需要使用输入密码,希望可以实现通过密钥登陆而免除输入密码,从而可以为以后实现批量自动部署主机做好准备。 环境如下: IP地址操作系统服务器端10.0.0.10CentOS 6.5 x86客户端10.0.0.61CentOS 6.5 …

分享memcache和memcached安装过程

Memcache是什么? Memcache是一个自由和开放源代码、高性能、分配的内存对象缓存系统。用于加速动态web应用程序,减轻数据库负载。 它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一…

导入导出Android手机文件

1、获得root权限:adb root; 如提示adbd cannot run as root in production builds,参见我的另一篇文章:http://www.cnblogs.com/hdk1993/p/4770388.html 2、设置/system为可读写:adb remount; 3、将文件复制…

GPT-3 不够 Open,BigScience 构建开放语言模型,规模小 16 倍

编译 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 大约一年前,总部位于纽约布鲁克林的自然语言处理初创公司 Hugging Face 推出了 BigScience。这是一个拥有 900 多名研究人员的国际项目,旨在更好地理解自然语言模型原理和提高大…

华为云微服务引擎CSE大量新特性上线,诚邀您免费体验

1、提供GO语言微服务开发框架SDK 支持插件化注册中心、多RPC协议(已默认实现http和highway,可扩展) 提供熔断降级、容错、路由管理、限流、错误注入、灰度发布等治理能力 2、提供Service Mesh商业版 支持.NET、Node.js、PHP等多语言应用…

memcache和memcached安装

首先要明确 memcache不是memcached第一步安装libevent #wget https://github.com/downloads/libevent/libevent/libevent-2.0.15-stable.tar.gz #tar libevent-2.0.15-stable.tar.gz #tar xzvf libevent-2.0.15-stable.tar.gz #cd libevent-2.0.15-stable #./configure --h…

点击按钮下载文件

RequestMapping("/download.do")public void download(HttpServletRequest request,HttpServletResponse response)throws Exception {String filePath "文件路径";FileInputStream fis null;OutputStream os null;try {fis new FileInputStream(fileP…

开源社区的危机:拒绝被“白嫖”?2大著名项目遭作者破坏

作者 | 林檎来源 | 数据实战派近日,一位开源开发者的故意破坏,再次引发了机构依赖开源库的争议。这一类开源库往往由维护者义务工作而支撑。被破坏的开源库是 Marak Squires 开发的 color.js 库和 faker.js 库。这两个库被广泛使用,其中不乏企…

状态和面向对象编程——1.定位步骤

定位 所有无人驾驶车要安全畅游全球,都必须经过一系列相同的步骤。 你一直在学习第一步:定位。在车辆能够安全驾驶之前,它们首先要使用传感器和收集的其他数据对它们所处的位置做出最佳估计。 卡尔曼滤波器 让我们来回顾一下卡尔曼滤波器对汽…

ldconfig命令详解,linux动态链接库

动态链接库管理命令 为了让动态链接库为系统所共享,还需运行动态链接库的管理命令--ldconfig.此执行程序存放在/sbin目录下. ldconfig命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍…

用于自动驾驶的实时 YUV 多任务 CNN

作者 | AI 修炼之路来源 | AI 修炼之路摘要本文提出了一种针对低功耗车用SoC优化的多任务卷积神经网络(CNN)结构。我们介绍了一个基于统一架构的网络,其中编码器由检测和分割两个任务共享。该网络以25FPS运行,分辨率为1280800。简要讨论了直接利用原生YU…

博客5:文件,目录以及用户的权限管理

linux用户与组的相关内容简介: 1.Linux用户:Username/UID管理员:root,0普通用户:1-65535系统用户:1-499(在centos7上为1-999)作用:对守护进程获取资源进行权限分配登录…

以太坊代币空投合约的实现

2019独角兽企业重金招聘Python工程师标准>>> 本文将介绍如何在以太坊智能合约中实现代币的空投。区块链以太坊世界中所谓空投(airdrop),就是免费给你的区块链地址(公钥)发送代币。 代币空投的方式层出不穷&…