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
  #生成新图片[白底]
  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.size
  item_width = int(width / 3)
  box_list = []
  # (left, upper, right, lower)
  for i in range(0,3):#两重循环,生成9张图片基于原图的位置
    for j in range(0,3):
      #print((i*item_width,j*item_width,(i+1)*item_width,(j+1)*item_width))
      box = (j*item_width,i*item_width,(j+1)*item_width,(i+1)*item_width)
      box_list.append(box)

  image_list = [image.crop(box) for box in box_list]
  return image_list
#保存
def save_images(image_list):
  index = 1
  for image in image_list:
    image.save('./python'+str(index) + '.png', 'PNG')
    index += 1

if __name__ == '__main__':
  file_path = "python.jpeg"
  image = Image.open(file_path)
  #image.show()
  image = fill_image(image)
  image_list = cut_image(image)
  save_images(image_list)

  

  

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • python生成九宫格图片

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

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

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

  • python实现图片九宫格分割

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

  • 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妹子图简单爬虫实例

    本文实例讲述了python妹子图简单爬虫实现方法.分享给大家供大家参考.具体如下: #!/usr/bin/env python #coding: utf-8 import urllib import urllib2 import os import re import sys #显示下载进度 def schedule(a,b,c): ''''' a:已经下载的数据块 b:数据块的大小 c:远程文件的大小 ''' per = 100.0 * a * b / c if per > 100 : per

  • 基于Python实现图片九宫格切图程序

    目录 1.python代码实现图片分割成九宫格 2.C++代码实现图片分割成九宫格(附Opencv配置教程) 1.python代码实现图片分割成九宫格 需要包含的库,没有下载安装的,需要自己安装哦. 实现原理很简单,就是用PIL库不断画小区域,切下来存储成新的小图片. 假设每一个格子的宽和高分别是w.h,那么第row行(从0开始计数),第col列(从0开始计数)的格子左上角坐标和右下角坐标分别是(col * w, row * h),(col * w + w, r * h + h). 代码实例:

  • JavaScript canvas实现九宫格切图效果

    本文实例为大家分享了canvas实现九宫格切图效果的具体代码,供大家参考,具体内容如下 首先页面展示 直接上代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"

  • Python使用Matplotlib实现雨点图动画效果的方法

    本文实例讲述了Python使用Matplotlib实现雨点图动画效果的方法.分享给大家供大家参考,具体如下: 关键点 win10安装ffmpeg animation函数使用 update函数 win10安装ffmpeg 因为最后要将动画图保存为.mp4格式,要用到ffmpeg,去官网下载,我az下载的是windows64bit static版本的,下载后解压到软件安装常用路径,并将ffmpeg路径添加到环境变量(这个方法在最后没用,但还是添加一下) animationa函数 准确来说是anima

  • Python实现平行坐标图的两种方法小结

    平行坐标图,一种数据可视化的方式.以多个垂直平行的坐标轴表示多个维度,以维度上的刻度表示在该属性上对应值,相连而得的一个折线表示一个样本,以不同颜色区分类别. 但是很可惜,才疏学浅,没办法在Python里实现不同颜色来区分不同的类别.如果对此比较在意的大神可以不要往下看了......... 上图是一个基于iris数据集所画的一个平行坐标图. 隔开隔开.......................................隔开隔开 不多扯了,下面正式上代码 方法一.基于pyecharts第三

  • 修改python plot折线图的坐标轴刻度方法

    修改python plot折线图的坐标轴刻度,这里修改为整数: 代码如下: from matplotlib import pyplot as plt import matplotlib.ticker as ticker import numpy as np def std_plot(): overall_std = [34.369, 21.366, 16.516, 11.151] max_std = [36.769, 21.794, 14.390, 4.684] plt.figure() plt

  • Python读取Excel表格,并同时画折线图和柱状图的方法

    今日给大家分享一个Python读取Excel表格,同时采用表格中的数值画图柱状图和折线图,这里只需要几行代码便可以实. 首先我们需要安装一个Excel操作的库xlrd,这个很简单,在安装Python后直接在DOS命令下输入pip install xlrd,便可以安装成功,如果还是不行,就输入Python -m pip install xlrd.后面会附上完整的代码和截图: 这行代码就是读取本地Excel文件的: data = xlrd.open_workbook(r'C:\\Users\\ASU

  • Python使用py2neo操作图数据库neo4j的方法详解

    本文实例讲述了Python使用py2neo操作图数据库neo4j的方法.分享给大家供大家参考,具体如下: 1.概念 图:数据结构中的图由节点和其之间的边组成.节点表示一个实体,边表示实体之间的联系. 图数据库:以图的结构存储管理数据的数据库.其中一些数据库将原生的图结构经过优化后直接存储,即原生图存储.还有一些图数据库将图数据序列化后保存到关系型或其他数据库中. 之所以使用图数据库存储数据是因为它在处理实体之间存在复杂关系的数据具有很大的优势.使用传统的关系型数据库在处理数据之间的关系时其实很不

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

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

随机推荐