用Python把一张图分割成9张图

# -*- 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(‘./result/python‘+str(index) + ‘.png‘, ‘PNG‘)
        index += 1

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

更多技术资讯可关注:gzitcast

原文地址:https://www.cnblogs.com/heimaguangzhou/p/11572279.html

时间: 2024-10-16 05:03:34

用Python把一张图分割成9张图的相关文章

python实现:将文本文件分割成多个小文本文件(php也可实现)

前两天有个朋友说,想实现一个文本文件按照固定行数进行分割成多个文本文件,却不知如何实现.如果数据量小手动分割下就好了,如果数据量很大的话手动完成实在太耗费人力了,也不现实.那么就需要借助脚本去实现.既然有朋友想简单的完成这个任务,那么不如记录下来,给需要的朋友提供方便. 下面我就分别使用python和php进行脚本的实现和操作,当然用其他语言都能实现,大家可根据对语言的熟悉程度进行自主选择,如果有朋友还没有达到编写代码的能力的话,那么最起码对语言环境的使用要会,只要达到这些,就可以完成如下工作.

怎样将一张很长的大图平均分割成多张小图?

首先使用360浏览器将网页保存为图片,如下图所示: 然后用PS打开图片,点开始--打开,找到文件所在的位置,将其打开. 其次找到切片工具,默认的切片工具和裁剪工具是重叠在一起的.鼠标移到裁剪工具上点右键就会出现切片工具,点选切片工具. 先好切片工具后, 将光标移到图片位置,点右建,选择划分切片,出来如下对话框:这里可以可以根据需要进行水平和垂直两种方式,也可以选按桉你所需的份数或是按象素进行裁剪(注:按像素裁的话,最后不一定是相等像素的) 选择好后点确定即可,接下来就是保存裁剪好的图,[保存为w

【Paddy】如何将物理表分割成动态数据表与静态数据表

前言 一般来说,物理表的增.删.改.查都受到数据量的制约,进而影响了性能. 很多情况下,你所负责的业务关键表中,每日变动的数据库与不变动的数据量比较,相差非常大. 这里我们将变动的数据称为动态数据,不变动的数据称为静态数据. 举个例子,1张1000W的表,每日动态数据只有1W条,999W条的数据都为静态.往往select或者重复改变的数据都在动态数据中.比如订单表. 所以,如果将动态数据库从表中剥离出来,分割两张表,一张动态数据表,一张静态数据表,从数据量的角度来看,性能是不是就会自然提高了?

用C#写小工具:将圆柱面贴图映射到半球贴图

最近在写GBA的程序.GBA运行的是C的裸机代码,而中途使用的很多小工具则用C#写的,例如:图片转换到.h头文件,制作三角函数表,还有像这次介绍的将圆柱面贴图映射到半球贴图的小工具.这样的小功能,用C#写就是一小会的事,效率非常高. 这时候就能体现出来——各语言有各自的用途,C用来做硬件开发,C++做软件开发,C#做快速功能. 这次要解决的问题是: 制作3D时,一个球体的贴图,我们通常映射成一个柱面,就像我们常见的世界地图一样.如图(这张图片是从NASA上下载的卫星图) 但是如果我们想用半球映射

机器学习基础:(Python)训练集测试集分割与交叉验证

在上一篇关于Python中的线性回归的文章之后,我想再写一篇关于训练测试分割和交叉验证的文章.在数据科学和数据分析领域中,这两个概念经常被用作防止或最小化过度拟合的工具.我会解释当使用统计模型时,通常将模型拟合在训练集上,以便对未被训练的数据进行预测. 在统计学和机器学习领域中,我们通常把数据分成两个子集:训练数据和测试数据,并且把模型拟合到训练数据上,以便对测试数据进行预测.当做到这一点时,可能会发生两种情况:模型的过度拟合或欠拟合.我们不希望出现这两种情况,因为这会影响模型的可预测性.我们有

如何用photoshop把一张图片分割成几张图片呢?

今天情人节,祝大家节日快乐!朋友发来一张照片,我发现这张照片是几张照片组合起来的,是不是感觉每一张都是萌萌哒呢?为了体现单张的独特性,现在我要把它切分成单张,使用Photoshop CS5该怎么弄呢? 1.首先,利用ps打开这张图. 2.找到最左边的工具箱里的第五个小框"切片工具",然后右击出现三个选项,单击"切片工具",如下图所示: 3.此时鼠标变成小刀形状,然后在图片上右击,在出现的菜单中选择"划分切片",出现下图小窗口: 4.单击该窗口中右

python 图像归一化作业代码代编程代写图python作业

python 图像归一化作业代码代编程代写图python作业from PIL import Image import os import sys import numpy as np import time from sklearn import svm # 获取指定路径下的所有 .png 文件 def get_file_list(path): return [os.path.join(path, f) for f in os.listdir(path) if f.endswith(".png&

一行Python代码一句注释,大量美女套图等萌新来战!

效果展示: 此模板主要用于多线程套图下载,不过一般大众爬虫不用破译的都可以改改使用,附件有个美图录的例子. 每个用途 每个网址 细节都会有差异 所有带(*)的都属于DIY范畴,需要一些基本的html知识,请灵活使用. 添加了断点续传功能,文件夹名称改为套图地址: 每一句Python源代码后面都有详细注释: import requests ##参考h踢踢批://docs点python-requests.org/zh_CN/latest/user/quickstart点html from bs4 i

CAD图转换成JPG图片怎么样操作

CAD图纸文件在各个行业基本都是会使用到的因为CAD图纸文件的查看需要借助于专业的软件进行查看,因此为了方便顾客进行查看,我们通过会将CAD图转换成JPG图片,这样就可以直接使用JPG图片查看图纸文件了.那么应该使用什么软件,才能够快速的将CAD图转换成JPG图片?怎么把CAD图转换成JPG图片? 一.什么软件可以将CAD图转换成JPG图片 想要将CAD图转换成JPG图片,那么使用这款迅捷CAD转JPG转换器(http://www.jb51.net/softs/560470.html)就可以轻松