教你怎么用Python生成九宫格照片

一、朋友圈九宫格效果图

二、图片基本操作

  • 打开要处理的图片
  • 判断打开的图片是否为正方形
  • 如果是正方形,就进行九等分,如果不是正方形,先用白色填充为正方形,再进行九等分
  • 保存处理完的图片

第一步,先我安装一下Pillow模块

pip install pillow

1 、处理图片

在Pillow中,用Image子模块。Image.open函数会返回一个图片对象,代码如下:

from PIL import Image
# 读取图片
img = Image.open('lbxx.jpg')

Pillow模块是PIL模块的python3版本,因此我们导入模块时是使用下面语句:

from PIL import Image

2、 截取图片

在Image对象中,有一个crop方法,用于剪切图片。它接收一个box参数,表示要截取的区域。图片中的坐标系是以左上角为原点的,如图:

我们来看看具体的代码:

from PIL import Image
# 读取图片
img = Image.open('lbxx.jpg')
# 截取图片的(0, 0, 300, 300)区域
box = img.crop((0, 0, 300, 300))
# 显示截取的区域
box.show()

3 、保存处理完的图片

保存图片的操作非常简单,我们只需要调用img的save方法即可,代码如下:

from PIL import Image
img = Image.open('lbxx.jpg')
box = img.crop((0, 0, 300, 300))
# 保存图片
box.save('1.jpg')

三、生成九宫格图片

如图:

知道了上面的操作,下面的操作无非就是截取图片的九个区域,然后保存即可。具体代码如下:

import os
from PIL import Image
# 读取图片
im = Image.open('1kkx.jpg')

# 宽高各除 3,获取裁剪后的单张图片大小
width = im.size[0]//3
height = im.size[1]//3

# 裁剪图片的左上角坐标
start_x = 0
start_y = 0

# 用于给图片命名
im_name = 1

# 循环裁剪图片
for i in range(3):
    for j in range(3):
        # 裁剪图片并保存
        crop = im.crop((start_x, start_y, start_x+width, start_y+height))
        # 判断文件夹是否存在
        if not os.path.exists('imgs'):
            os.mkdir('imgs')
        crop.save('imgs/' + str(im_name) + '.jpg')

        # 将左上角坐标的 x 轴向右移动
        start_x += width
        im_name += 1

    # 当第一行裁剪完后 x 继续从 0 开始裁剪
    start_x = 0
    # 裁剪第二行
    start_y += height

到此这篇关于教你怎么用Python做九宫格照片的文章就介绍到这了,更多相关Python做九宫格照片内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python实现九宫格式的朋友圈功能内附“马云”朋友圈

    PIL(Python Imaging Library)是一个非常强大的Python库,但是它支持Python2.X, 在Python3中则使用的是Pillow库,它是从PIL中fork出来的一个分支.提供了非常强大的图片处理能力,包括存储.格式转换.图像处理等操作 有时候看到朋友圈的九宫格动态,是不是感觉非常有逼格呢? 今天就用Python来实现九宫格切图. 先来看几张效果图 大致思路分为以下几步 1.读取初始照片 2.比较照片的宽高,数值较大的作为边长生成一个新的空白图片 3.将初始图片粘贴至

  • Python切割图片成九宫格的示例代码

    这篇文字讲述如何使用Python把一张完整的大图切割成9份小图片,制作朋友圈九宫格图文分享. 原图如下: 我们想要利用这张图制作高逼格的九宫格朋友圈分享. 达到类似于这样的效果: 实现原理非常简单,那就是利用PIL库对原图不断画小区域然后切下来存储成新的小图片. 假设每一个格子的宽和高分别是w.h,那么第row行(从0开始计数),第col列(从0开始计数)的格子左上角坐标和右下角坐标分别是(col * w, row * h),(col * w + w, r * h + h). code snip

  • python生成九宫格图片

    本文实例为大家分享了Python九宫格图片生成的具体代码,供大家参考,具体内容如下 利用Image类将一张图片分割成9张,发朋友圈利器,打包成EXE后,长期使用. 效果大致是:           库:pillow 源码: # pengyouquanPicture.py # 朋友圈九宫格图片制作 from PIL import Image import sys # 先将input image 填充为正方形 def fill_image(image): width, height = image.

  • python实现图片九宫格分割

    大家都知道在微信朋友圈或者微博以及QQ动态中,有很多"强迫症患者"发图片都爱发9张,而有些图是一张图片分成的九宫图,对于这种操作,大家知道是怎么做到的吗? 本文就是用Python做的一个九宫格图片生成器,是一个打包好的exe文件,用户无需部署安装Python的开发环境,在本地就可以运行此程序,以此快速生成九宫格图片. 下面是程序的所有代码,这是一个Python GUI程序,代码不多,也很容易理解: # -*- coding: UTF-8 -*- # 将一张图片分成九张,九宫格 impo

  • python制作朋友圈九宫格图片

    本文实例为大家分享了python朋友圈九宫格图片的具体制作代码,供大家参考,具体内容如下 将一张图片,切分成九宫格的样式: 原图: # -*- coding: UTF-8 -*- from PIL import Image import sys import os __author__ = 'kandy' #当前文件所在文件夹 DIR_NAME = os.path.dirname( os.path.abspath(__file__) ) #填充新的image def fill_image(ima

  • 利用Python实现朋友圈中的九宫格图片效果

    前言 大家应该经常在朋友圈看到有人发九宫格图片,其实质就是将一张图片切成九份,然后在微信中一起发这九张图即可. 说到切图,Python 就可以实现,主要用到的 Python 库为 Pillow,安装使用 pip install pillow 即可,切图的主要步骤如下: 打开要处理的图片 判断打开的图片是否为正方形 如果是正方形,就进行九等分,如果不是正方形,先用白色填充为正方形,再进行九等分 保存处理完的图片 主要实现代码如下: # 填充新的 image def fill_image(image

  • Python切图九宫格的实现方法

    本文介绍了Python切图九宫格的实现方法,分享给大家,具体如下 # -*- coding: utf-8 -*- ''' 将一张图片填充为正方形后切为9张图 ''' from PIL import Image import sys #将图片填充为正方形 def fill_image(image): width, height = image.size #选取长和宽中较大值作为新图片的 new_image_length = width if width > height else height #

  • python实现图片九宫格分割的示例

    简介 大家都知道在微信朋友圈或者微博以及QQ动态中,有很多"强迫症患者"发图片都爱发9张,而有些图是一张图片分成的九宫图,对于这种操作,大家知道是怎么做到的吗? 本文就是用Python做的一个九宫格图片生成器,是一个打包好的exe文件,用户无需部署安装Python的开发环境,在本地就可以运行此程序,以此快速生成九宫格图片. 实现原理 实现原理非常简单,那就是利用PIL库对原图不断画小区域然后切下来存储成新的小图片. 假设每一个格子的宽和高分别是w.h,那么第row行(从0开始计数),第

  • Python生成九宫格图片的示例代码

    一.前言 大家在朋友圈应该看到过用一张图片以九宫格的方式显示,效果大致如下: 要实现上面的效果非常简单,我们只需要截取图片的九个区域即可.今天我们就要带大家使用Python来实现一下九宫格图片的生成.在开始之前,我们需要安装一下Pillow模块,语句如下: pip install pillow 下面我们先来看看一些简单的图片操作. 二.图片基本操作 今天我们会使用到三个操作,分别是读取图片.保存图片和截取图片.下面我们分别来看看. 2.1 读取图片 在Pillow中,我们最常用的就是Image子

  • 教你怎么用Python生成九宫格照片

    一.朋友圈九宫格效果图 二.图片基本操作 打开要处理的图片 判断打开的图片是否为正方形 如果是正方形,就进行九等分,如果不是正方形,先用白色填充为正方形,再进行九等分 保存处理完的图片 第一步,先我安装一下Pillow模块 pip install pillow 1 .处理图片 在Pillow中,用Image子模块.Image.open函数会返回一个图片对象,代码如下: from PIL import Image # 读取图片 img = Image.open('lbxx.jpg') Pillow

  • 利用python生成照片墙的示例代码

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历史悠久,原来是只支持python2.x的版本的,后来出现了移植到python3的库pillow,pillow号称是friendly fork for PIL,其功能和PIL差不多,但是支持python3.本文只使用了PIL那些最常用的特性与用法,主要参考自:http://www.effbot.org

  • Python识别处理照片中的条形码

    最近一直在玩数独,突发奇想实现图像识别求解数独,输入到输出平均需要0.5s. 整体思路大概就是识别出图中数字生成list,然后求解. 输入输出demo 数独采用的是微软自带的Microsoft sudoku软件随便截取的图像,如下图所示: 经过程序求解后,得到的结果如下图所示: def getFollow(varset, terminalset, first_dic, production_list):     follow_dic = {}     done = {}     for var

  • python 窃取摄像头照片的实现示例

    python窃取摄像头照片源码+获取授权码方法+py打包成exe 教你用python做一个属于自己的窃取摄像头照片的软件. 需要安装python3.5以上版本,在官网下载即可. 然后安装库opencv-python,安装方式为打开终端输入命令行. 可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple,这样就会从清华这边的镜像去安装需要的库,会快很多. pip install opencv-python -i https://pypi.

  • python生成word合同的实例方法

    在企业招聘中,最重要的事情,就是需要签订劳动合同,但是有些大的公司,因为人员过于,在设置编辑合同的时候,比较耗时耗力,编程存在的意义,就是帮助我们实现办公自动化,因此能实现自动生成合同,还是非常重要的,下面小编就来采用函数以及面向对象过程,教大家实现生成合同过程. 1.模板文件 甲方公司.乙方人员姓名.乙方部门.乙方职位.甲方人员姓名.乙方人员姓名.时间(年月日),如图所示. 2.实现代码 from docxtpl import DocxTemplate import os import pym

  • 教你怎么用Python实现多路径迷宫

    一.思路介绍 在已有的单路径迷宫基础上打开一块合适的墙就可以构成2路径的迷宫. 打开的墙不能和已有的路径过近. 1.从开始和终点开始进行广度优先搜索,并为迷宫中的每个单元格记录单元格远离开始和终点的步数. 2.通过将距离开头较近的所有单元格放入 start 集合,并将更接近目标的所有单元格放入end集合来将迷宫分成两个部分. 3. 选择分开两个区域的任意一面墙拆开就可以形成2通路的迷宫. 如想生成最短的通路可以选择相邻格子距离差值最大的那面墙拆开,一般情况下这两条路距离也比较远. 二.图示 三.

  • 教你怎么用python删除相似度高的图片

    1. 前言 因为输入是视频,切完帧之后都是连续图片,所以我的目录结构如下: 其中frame_output是视频切帧后的保存路径,1和2文件夹分别对应两个是视频切帧后的图片. 2. 切帧代码如下: #encoding:utf-8 import os import sys import cv2 video_path = '/home/pythonfile/video/' # 绝对路径,video下有两段视频 out_frame_path = os.path.join(os.path.dirname(

随机推荐