読者です 読者をやめる 読者になる 読者になる

ポジティブ心理学研究所

幸福度(EQ)アップの研究所です。ポジティブ心理学に出会う前の古い記事はネガティブなので注意。

LINEクリエイターズマーケットでスタンプ画像を規格サイズに一括でリサイズする方法

プログラミング インターネット

f:id:lettuce0831:20140417212404p:plain

LINEクリエイターズマーケットとは

LINEユーザーが自作のスタンプをLINEスタンプのストアで販売できるサービスです。

LINE Creators Market

4月開始という情報だけがあって、いつ始まるのだか情報もなくいまかいまかと待っていましたがとうとう始まったようです。

画像規格

  • サイズ (最大):W 370×H 320 pixel
  • スタンプ画像のサイズは偶数のサイズでなければならない

ガイドライン - LINE Creators Market

スタンプ40個ごとにそれぞれ大きさがバラバラだと、アスペクト比を維持しつつ370*320以内に収めて、さらに、リサイズした結果奇数になってしまった場合は偶数に調整する必要があります。

幅370pxと高さ320pxのどちらの上限に合わせるか

857 * 774の画像があるとします。

幅の上限が370pxなのでそちらに合わせてアスペクト比維持でリサイズすると370 * 334となり、幅は370pxに収まってますが高さは上限の320px を超えてしまっています。つまりここでは320pxに合わせてリサイズするパターンでした。

当然、これの逆のパターンもあり幅に合わせたほうがいいパターンのサイズもあります。

こういった面倒な要素もあるため、これを手作業で40個すべてに行うとすると相当な手間となります。

そこでこれを一括で行うためにPythonと、Pythonの画像処理ライブラリであるPillowを使います。

Pillowは、更新が止まってしまったPIL(Python Imaging Library)を引き継いで作られている後継ライブラリです。

今回の一括リサイズスクリプトの特徴

上記の面倒な問題を解消しつつリサイズを一括で行ってくれます。

  • 370px、320px以内にアスペクト比を維持したままリサイズする
  • リサイズした結果、奇数が発生すれば偶数に調整する

PythonとPillowのインストール

ここではPython2.7を使う前提とします。が、たぶんそれ以前のバージョンや3系でも動きます。

Pythonのインストール

Macの場合

最初からPythonがインストールされています。

Windowsの場合

Pythonのインストール(Windows) - Qiita

上記ページにある通り、pipも一緒にインストールしてください。

Pillowのインストール

pip install Pillow

Macの場合はターミナルで、Windowsの場合はコマンドプロンプトで実行します。

実行できない場合は環境変数へPython.exeへのパスを通してください。(Windows)

環境変数PATHの設定 - 環境設定と動作確認 - Pythonインストールと環境設定

リサイズスクリプト

# -*- coding: utf-8 -*-

import os
import glob
from PIL import Image

try:
    os.mkdir("resized")
except:
    pass

for infile in glob.glob("*.png"):
    im = Image.open(infile)
    im.load()
    im.thumbnail((370,320), Image.ANTIALIAS)
    
    # 奇数があれば偶数に修正
    w, h = im.size
    new = None
    if w % 2 != 0:
        new = Image.new("RGBA", (w+1,h))
    elif h % 2 != 0 :
        new = Image.new("RGBA", (w,h+1))
    
    
    if new is None:
        im.save("resized/" + infile)
    else:
        new.paste(im, (0,0))
        new.save("resized/" + infile)

上記を任意のファイルの名前で保存し(拡張子は.py)、スタンプ素材のあるフォルダへ置きます。

ここではresize.pyで保存したとします。

スクリプトを実行し一括変換

cd リサイズしたい画像のあるフォルダ

ターミナル(コマンドプロンプト)で該当フォルダへ移動し、

python resize.py

を実行します。

そうするとそのフォルダにresizedフォルダが作られます。中にはリサイズ調整後の画像が作られています。これで一括リサイズ完了です。

メイン画像やトークルームタブ画像は40個のスタンプ画像とは規格が異なるので、そちらは手動で調整してください。

バックアップを取って自己責任で

本スクリプトを実行する際は、バックアップを取り自己責任で実行してください。また、スクリプトに不備等があればご叱正よろしくお願いします。

本スクリプトが皆さんの生産性向上に寄与できれば幸いです。

初めてのPython 第3版

初めてのPython 第3版

みんなのPython 第3版

みんなのPython 第3版

たのしいプログラミング Pythonではじめよう!

たのしいプログラミング Pythonではじめよう!