精华内容
下载资源
问答
  • Python切割九宫格

    2020-08-28 10:19:27
    Python切割九宫格图 朋友圈经常有人发九宫格图片,但那是使用特定的图片软件制的或就是九章不同的照片 本次我们用 Python 来制一张

    Python切割九宫格图

    • 朋友圈经常有人发九宫格图片,但那是使用特定的图片软件制成的或就是九章不同的照片
    • 本次我们用 Python 来制一张
      • 九宫格主体是一个 3x3 的正方形矩阵 有9张对应的图片组成
      • 一般的软件,在遇到非矩阵型图片时难以完成重组,且有多张图片组成
      • 本次利用 Python 的 PIL 库 将一张非正方形的矩阵,切割重组成9张正方形矩阵图
      • 朋友圈可直接发送九宫格(如下图)与一张图片切割而成

    九宫格

    # -*- coding: utf-8 -*-
    """
     将一张图片填充为正方形后切为9张图
    """
    import os
    from tkinter import filedialog
    from PIL import Image
    from future.moves import tkinter
    
    
    def open_img():
        """
        打开图片
        :return:
        """
        root = tkinter.Tk()  # 创建一个Tkinter.Tk()实例
        root.withdraw()  # 将Tkinter.Tk()实例隐藏
        default_dir = r"文件路径"
        file_path = filedialog.askopenfilename(title=u'选择文件', initialdir=(os.path.expanduser(default_dir)))
        if len(file_path) != 0:
            image = Image.open(file_path)
            fill_image(image)
        else:
            SystemExit()
    
    
    def fill_image(img):
        """
        将图片填充为正方形
        :param img: 图片
        :return:
        """
        width, height = img.size
        # 选取长和宽中较大值作为新图片的
        new_image_length = width if width > height else height
        # 生成新图片[白底]
        new_image = Image.new(img.mode, (new_image_length, new_image_length), color='white')
        # 将之前的图粘贴在新图上,居中
        if width > height:  # 原图宽大于高,则填充图片的竖直维度
            # (x,y)二元组表示粘贴上图相对下图的起始位置
            new_image.paste(img, (0, int((new_image_length - height) / 2)))
        else:
            new_image.paste(img, (int((new_image_length - width) / 2), 0))
        cut_image(new_image)
    
    
    def cut_image(img):
        """
        切图
        :param img: 填充成方形后的图片
        :return:
        """
        width, height = img.size
        item_width = int(width / 3)
        box_list = []
        for i in range(0, 3):  # 两重循环,生成9张图片基于原图的位置
            for j in range(0, 3):
                box = (j * item_width, i * item_width, (j + 1) * item_width, (i + 1) * item_width)
                box_list.append(box)
    
        img_list = [img.crop(box) for box in box_list]
        save_images(img_list)
    
    
    def save_images(img_list):
        """
        保存切割完成的图片
        :param img_list: 切割后的图片列表
        :return:
        """
        index = 1
        files_path = 'Pic'
        # 若文件夹不存在,则创建
        if not os.path.exists(files_path):
            os.makedirs(files_path)
    
        for img in img_list:
            img.save('./Pic/' + str(index) + '.png', 'PNG')
            index += 1
        print('完成')
    
    
    if __name__ == '__main__':
        open_img()
    

    切图应用程序的下载

    展开全文
  • 经常看到朋友圈或者空间里有朋友发布照片时,将朋友圈的照片切分为九宫格,参考了一些大神的博客资料,现整理如下;将图片分拆成九宫格的思路:读取图片->填充图片为正方形(fill_image函数)->将图片切分为9张(cut_image...

    经常看到朋友圈或者空间里有朋友发布照片时,将朋友圈的照片切分为九宫格,参考了一些大神的博客资料,现整理如下;

    将图片分拆成九宫格的思路:

    读取图片->填充图片为正方形(fill_image函数)->将图片切分为9张(cut_image函数)->保存图片(save_image)->over

    代码实现如下:

    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(str(index) + '.jpg')

    index += 1

    if __name__ == '__main__':

    file_path = "微信图片_20180809234441.jpg"

    image = Image.open(file_path)

    # image.show()

    image = fill_image(image)

    image_list = cut_image(image)

    save_images(image_list)

    效果如下:

    20190705153142.jpg

    参考了二胖大神提供的思路,里面的逻辑很有趣:

    1.开始相当于是拿一张白底的图片粘贴到了原图上;

    2.切图的时候分成9宫格,的循环写的也非常漂亮。

    3.代码中出现了很多次for循环的迭代使用:[image.crop(box) for box in box_list],以后自己也要多练习这种写法。

    以上这篇用Python实现将一张图片分成9宫格的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    展开全文
  • 最近在抖音上看到了很多人的朋友圈是九宫格拼图形式的,但每一张点开都还有更多的图片,那朋友圈九宫格照片怎么发?朋友圈九宫格拼图照片制作方法是什么呢?和销客多微商城小编一起来了解看看吧。需要用到的app:九格...

    想低成本开店?要坐享其成?

    销客多微信分销系统,让别人帮你卖产品,你就能坐享其成!

    最近在抖音上看到了很多人的朋友圈是九宫格拼图形式的,但每一张点开都还有更多的图片,那朋友圈九宫格照片怎么发?朋友圈九宫格拼图照片制作方法是什么呢?和销客多微商城小编一起来了解看看吧。

    70bb5a2f7eb4337f68aa913b5a3907de.png

    需要用到的app:九格切图(可以将图片自动切分成九格,也可以选择图案)

    PINS或是美图秀秀(拼接长图,还有滤镜/背景色/间隔调整;PINS也有很多好看的格子海报模板)

    ↑这两个软件ios安卓都可以下载的,非常方便啦!

    9828d8d13bdd3b616ae79e01401b9e61.png

    九格切图技巧攻略介绍

    1.打开【九格切图】,导入相册里的一张照片,自动保存为9张切好的格子图

    2.打开【PINS】,选择【长图】,可选择拼接3/5/7/9张正方形图片,分别是在第2/3/4/5放入拼接的那张图

    3.按照顺序,将切好的9张图片,分别放入拼接的长图中,在PINS里还可以一键滤镜,炒鸡方便!!

    8b6e58bc49860134d8fd3201a3e7e325.png

    4.处理好9张图之后,分别保存下来,按照顺序发布朋友圈或微博

    5.这样就可以发一条颜值高又好看的朋友圈了~

    朋友圈九宫格照片怎么发?朋友圈九宫格拼图照片制作方法,销客多微商城小编就和大家介绍这些了。希望对各位有所帮助。

    展开全文
  • 本文实例为大家分享了Python九宫格图片生成的具体代码,供大家参考,具体内容如下利用Image类将一张图片分割9张,发朋友圈利器,打包EXE后,长期使用。效果大致是: 库:pillow源码:# pengyouquanPicture.py# ...

    本文实例为大家分享了Python九宫格图片生成的具体代码,供大家参考,具体内容如下

    利用Image类将一张图片分割成9张,发朋友圈利器,打包成EXE后,长期使用。

    效果大致是:

    201811191031078.png

    201811191031079.png

    库:pillow

    源码:

    # pengyouquanPicture.py

    # 朋友圈九宫格图片制作

    from PIL import Image

    import sys

    # 先将input image 填充为正方形

    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:

    new_image.paste(image,(0, int((new_image_length-heigth) / 2)))

    else:

    new_image.paste(image,(int((new_image_length-width) / 2), 0))

    return new_image

    # 将图片切割成九宫格

    def cut_image(image):

    width, height = image.size

    #一行放3张图

    item_width = int(width / 3)

    box_list = []

    for i in range(0,3):

    for j in range(0,3):

    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(str(index) + '.png', 'PNG')

    index += 1

    if __name__ == '__main__':

    file_path = "1.jpg"

    image = Image.open(file_path)

    #image.show()

    image = fill_image(image)

    image_list = cut_image(image)

    save_images(image_list)

    打包EXE:

    pyinstaller.exe -F pengyouquanPicture.py -i "b8.ico"

    2018111910310710.png

    把EXE文件和要分割的图片放在一个路径下,人后图片重命名为1.jpg ,直接执行exe 就可以得到9张照片啦。

    PS:怎么打包成APP,后面再研究研究。

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

    本文标题: python生成九宫格图片

    本文地址: http://www.cppcns.com/jiaoben/python/245014.html

    展开全文
  • 关于微信之前写过以下文章,有兴趣可以点击查看:你可能在朋友圈看过九宫格图片(把一张图片按照比例分成九份),就像这样的:还有微博九宫格图 https://weibo.com/2717930601/... :这种九宫格图片怎么发的呢?...
  • 手机拍照片咋做成九宫格?只需4步,这么发朋友圈真好看!国庆中秋双节已过,你拍了照片吗?很多朋友拍了照片后,喜欢发朋友圈分享。今天教大家一招,让你发的朋友圈更好看,用手机就能完成。先看下例图:下面介绍...
  • 这篇文字讲述如何使用Python把一张完整的大图切割9份小图片,制作朋友圈九宫格图文分享。 PS注意:很多人学Python过程中会遇到各种烦恼问题,没有人帮答疑容易放弃。为此小编建了个Python全栈免费答疑.裙 :七...
  • 细心的小伙伴应该经常能在自己的朋友圈看到把一张图片切成九张图片的效果,甚是有创意。如果你还没学会那就out啦,今天教你用Python自己实现这种骚操作。 整体代码: from PIL import Image #读取图片 im = Image....
  • 在微博时尚流行的图片展示上,九宫切图是当下最流行的一种,一张非常普通的照片经过了九宫切图软件的处理,变成非常漂亮的九宫图片,是不是美观大大提升了。尤其是在把自己自拍的照片九宫图展示,让人更有一种不...
  • 利用opencv实现九宫格拼图功能

    千次阅读 2019-02-24 20:36:09
    利用opencv实现九宫格拼图功能@TOC - 设计思路 1 读入一张图片,并对图像进行切割,分成九块; 2 利用数组保存九张图片,设法将九张图片显示在一张图片中; 3 随机初始化,使九张图片随机分布在显示界面图片的九个...
  • #功能: 选择图片,切割成九宫格,并显示 效果为: 主程序如下: import sys import sqlite3 from PyQt5.QtWidgets import * from PyQt5.QtWidgets import QFileDialog from PyQt5 import QtGui, QtCore, Qt...
  • 我们在翻阅手机上的照片的时候,发现有的照片整体布局平稳、主题明确、意境丰富、结构简单,也有的照片主题大小...1、什么是九宫格构图:九宫格构图是我们最为常见、最基本的构图方法,如果把一张图片的上、下、左、...
  • 今天给大家推荐一个朋友圈晒(nue)照(gou)的APP——CUTTT,它可以将一张图片切成9小张,让你在发票圈时不犯选择困难症,又显得独树一帜,赶紧来看一下怎么操作吧。未使用CUTTT切分前使用CUTTT切分后01.选择切图...
  • 如果在旅行途中拍了一组照片,大多数人都是像下面这样晒一组九宫格照片:晒这样也没啥问题,在下面我教大家一种更加高级的晒法,下面这样:一张照片切割九张成为九宫格的封面,然后每一张封面下有几张照片,比如...
  • Python实现图片九宫格分割

    千次阅读 2018-08-16 20:29:27
    本文就是用Python做的一个九宫格图片生成器,是一个打包好的exe文件,用户无需部署安装Python的开发环境,在本地就可以运行此程序,以此快速生成九宫格图片。 下面是程序的所有代码,这是一个Python GUI程序,代码...
  • 本篇阅读时间约为 5 分钟。文/咪哥杂谈1前言在日常的生活中,大家偶尔会看到朋友圈发的照片由一张被切成九张的效果,有时由一张照片切成九张照片所带来的视觉盛宴是不一样的!...
  • 在日常的生活中,大家偶尔会看到朋友圈发的照片由一张被切成九张的效果,有时由一张照片切成九张照片所带来的视觉盛宴是不一样的! 现在许多 P 图工具里面自带了这种功能,而微信小程序里也有专门可以切图的工具。...
  • Python项目之九宫格图片生成

    千次阅读 2018-08-19 19:47:36
    利用Image类将一张图片分割9张,发朋友圈利器,打包EXE后,长期使用。...# 朋友圈九宫格图片制作 from PIL import Image import sys # 先将input image 填充为正方形 def fill_image(image): w...
  • 一张图片,切分成九宫格的样式: 原图: # -*- coding: UTF-8 -*- from PIL import Image import sys import os __author__ = 'kandy' #当前文件所在文件夹 DIR_NAME = os.path.dirname( os.path.abspath(_...
  • 原标题:Python处理图片九宫格,炫酷朋友圈 1前言在日常的生活中,大家偶尔会看到朋友圈发的照片由一张被切成九张的效果,有时由一张照片切成九张照片所带来的视觉盛宴是不一样的!现在许多 P 图工具里面自带了...
  • 九宫格构图学习[1]

    2018-12-07 13:33:00
    手机拍照需要开启九宫格,作为拍照的基本参考线。 1中心法: 将主体放在照片中心,这比较考验人物的姿势、环境、光线等因素。 2、三分法: 将画面横三等分或竖三等分,并将拍照主体放在一根三分线上,分为竖分...
  • 本次的教程非常简单,通过PS中的裁剪、切片工具给照片进行裁剪,制作九宫格效果,因为社交软件中微博和微信都是以9图发送,所以很多同学们在问这种在PS中如何做,相信同学们学习以后会大呼简单,学习PS就是由简入难...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 299
精华内容 119
关键字:

一张照片切成九宫格