Pythonは九宫格の画像を生成するコードの例を示しています。


はじめに
友達の輪で一枚の写真を使って九宮格で表示するのを見たことがあります。効果は大体次の通りです。
发朋友圈九宫格效果
上の効果を実現するにはとても簡単です。私たちは写真の9つの領域を切り取ります。今日はPythonを使って、九宮格の画像の生成を実現します。始める前に、私達はPillowモジュールをインストールしたいです。文は以下の通りです。

pip install pillow
まず簡単な画像操作を見てみます。
二、写真の基本操作
今日は3つの操作に使います。画像の読み取り、保存、写真の切り取りです。私たちはそれぞれ見に来ます。
2.1画像を読み込む
Pillowの中で、私たちが一番よく使うのはImageサブモジュールです。画像を読み取る動作は、Image.open関数により実現される。Image.open関数は、画像オブジェクトに戻ります。具体的なコードを見てみます。

from PIL import Image
#     
img = Image.open('lbxx.jpg')
PillowモジュールはPILモジュールのpythone 3バージョンですので、モジュールを導入する時は以下の語句を使います。

from PIL import Image
あとは、対象者を操作することで、画像の操作ができます。
2.2写真の切り取り
Imageオブジェクトには、画像を切り出すためのcrop方法があります。それはboxパラメータを受信して、切り取るエリアを表します。パラメータは元のグループで、要素の内容はそれぞれ左上のx、y座標、右下のx、y座標です。画像の座標系は左上を原点としています。
图像中的坐标
もし私たちが写真を切り取りたいなら、次のようなエリア:
在这里插入图片描述
私たちのパラメータは以下の通りです。

img.crop((x1, y1, x2, y2))
具体的なコードを見てみます。

from PIL import Image
#     
img = Image.open('lbxx.jpg')
#      (0, 0, 300, 300)  
box = img.crop((0, 0, 300, 300))
#        
box.show()
2.3写真を保存する
画像を保存する操作は非常に簡単です。私たちはSOSのメソッドを呼び出すだけでいいです。コードを直接見ます。

from PIL import Image
img = Image.open('lbxx.jpg')
box = img.crop((0, 0, 300, 300))
#     
box.save('1.jpg')
私たちはsave方法を直接呼び出して保存の経路に入ればいいです。
三、九宮格の写真を生成する
上の操作が分かりました。下の操作は写真の9つの領域を切り取って保存すればいいです。具体的なコードは以下の通りです。

from PIL import Image
#     
im = Image.open('lbxx.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))
        crop.save('imgs/' + str(im_name) + '.jpg')

        #         x      
        start_x += width
        im_name += 1

    #          x     0     
    start_x = 0
    #      
    start_y += height
まずimgsディレクトリを作成して、プログラムを実行すれば、imgsの下で切り取った写真を見ることができます。
在这里插入图片描述
でも、上のコードはちょっと不便です。マニュアルでimgsディレクトリを作成する必要があります。私たちはOSモジュールを使って自動的に変更カタログを作成してくれます。修正後のコードは以下の通りです。

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が九宫格の画像を生成する内容は以前の文章を検索してください。