Python

アイキャッチ生成自動化ツール

管理人
管理人
アイキャッチを大量に作るのがめんどくさいので、自動化しました。

実現したいこと

フォルダーにアイキャッチ素材を集める(手動)

—-<プログラムで実行>—-

① アイキャッチ素材をリサイズ(縦横同じ大きさにする)

② アイキャッチ素材に枠をつける

③ アイキャッチ素材にサイトのロゴをつけ

——————————–

※ アイキャッチ素材が、複数あっても実行可能

プログラム実行前後

プログラム実行前
 

  • 画像の大きさバラバラ
  • 枠なし
  • ロゴなし
プログラム実行後
 

  • 画像の大きさ統一
  • 枠あり
  • ロゴあり

動作動画

開発環境

開発言語 Python
バージョン 3.8.10
動作OS windows10

開発コード

① アイキャッチ素材をリサイズ


#ライブラリーをインストール
 
import os
from PIL import Image, ImageDraw, ImageFilter
 
FromImgName = 'Desktop/source'
ToImgName  = 'Desktop/chenge'
files = os.listdir(FromImgName)
 
for file in files:
    img = Image.open(os.path.join(FromImgName, file))
    img_resize = img.resize((1550, 900))
    img_resize.save(os.path.join(ToImgName, file))  
  

 

② アイキャッチ素材に枠をつける


#枠
    color = (14, 150, 209) # 枠線の色(R,G,B)で指定
    dir_path = 'Desktop/chenge/' # 画像ファイルのあるフォルダの相対パス
    files = os.listdir(dir_path) # フォルダ内のファイルのリスト生成

#保存する
    filename = i.split('.')[0]
    file_ext = i.split('.')[1]
    im.save(dir_path + filename + '.' + file_ext)
  
#ファイルを1つずつ取り出して枠つける処理
for i in files:
    im = Image.open(dir_path + i)
    w, h = im.size
    draw = ImageDraw.Draw(im)
    draw.rectangle((0, 0, w-1, h-1), outline = color, width=20 )    

 

③ アイキャッチ素材にサイトのロゴをつけ

 

dir_path = 'Desktop/chenge/' #画像ファイルのあるフォルダの相対パス
files = os.listdir(dir_path) #フォルダ内のファイルのリスト生成
 
#ファイルを1つずつ取り出して枠つける処理
for i in files:
    lim1 = Image.open(dir_path + i)
    
#lim1 = Image.open('change/ok-2.jpg')
    lim2 = Image.open('Desktop/icon.png')
    
    back_im = lim1.copy()
    #back_im.paste(im2, (100, 50)) #右上
    #back_im.paste(im2, (980, 50)) #左上
    #back_im.paste(im2, (100, 730)) #右下
    back_im.paste(lim2, (1200, 580)) #左下
    
    f#ライブラリーをインストール
 
import os
from PIL import Image, ImageDraw, ImageFilter
 
FromImgName = 'Desktop/source'
ToImgName  = 'Desktop/chenge'
files = os.listdir(FromImgName)
 
for file in files:
    img = Image.open(os.path.join(FromImgName, file))
    img_resize = img.resize((1550, 900))
    img_resize.save(os.path.join(ToImgName, file))  
    
    
    color = (14, 150, 209) #枠線の色(R,G,B)で指定
    dir_path = 'Desktop/chenge/' #画像ファイルのあるフォルダの相対パス
    files = os.listdir(dir_path) #フォルダ内のファイルのリスト生成

#保存する
    filename = i.split('.')[0]
    file_ext = i.split('.')[1]
    im.save(dir_path + filename + '.' + file_ext)ilename = i.split('.')[0]
    file_ext = i.split('.')[1]
    
    back_im.save(dir_path + filename + '.' + file_ext)  
    

 

■完成形

 

#ライブラリーをインストール
import os
from PIL import Image, ImageDraw, ImageFilter
 
FromImgName = 'Desktop/source'
ToImgName  = 'Desktop/chenge'
files = os.listdir(FromImgName)
 
for file in files:
    img = Image.open(os.path.join(FromImgName, file))
    img_resize = img.resize((1550, 900))
    img_resize.save(os.path.join(ToImgName, file))  
    
    
    color = (14, 150, 209) # 枠線の色(R,G,B)で指定
    dir_path = 'Desktop/chenge/' # 画像ファイルのあるフォルダの相対パス
    files = os.listdir(dir_path) # フォルダ内のファイルのリスト生成

  
#ファイルを1つずつ取り出して枠つける処理
for i in files:
    im = Image.open(dir_path + i)
    w, h = im.size
    draw = ImageDraw.Draw(im)
    draw.rectangle((0, 0, w-1, h-1), outline = color, width=20 )    

    filename = i.split('.')[0]
    file_ext = i.split('.')[1]
    im.save(dir_path + filename + '.' + file_ext)
    
dir_path = 'Desktop/chenge/' #画像ファイルのあるフォルダの相対パス
files = os.listdir(dir_path) #フォルダ内のファイルのリスト生成
 
#ファイルを1つずつ取り出して枠つける処理
for i in files:
    lim1 = Image.open(dir_path + i)
    
#lim1 = Image.open('change/ok-2.jpg')
    lim2 = Image.open('Desktop/icon.png')
    
    back_im = lim1.copy()
    #back_im.paste(im2, (100, 50)) #右上
    #back_im.paste(im2, (980, 50)) #左上
    #back_im.paste(im2, (100, 730)) #右下
    back_im.paste(lim2, (1200, 580)) #左下
    
    filename = i.split('.')[0]
    file_ext = i.split('.')[1]
    
    back_im.save(dir_path + filename + '.' + file_ext)          
     
    
【サービス紹介】

当サイトで共有しているツールが、自分のPC環境で動作しない。ツールをアレンジしたいなどの相談・依頼があれば、有償サービスを出品しています。

※ 多忙のため、現在依頼を停止しています。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です