LINEでも透過GIF スクリプト
LINEでも背景透過して表示したい
まず、透過画像(PNG形式)を用意し、
cd 透過画像たちがあるディレクトリ
してからこれを実行
./ linest
---
ShellScript シェルスクリプト
GIFD=`basename "$(pwd)"`
mkdir "${GIFD} GIF"
yes |
for i in *.png
do
FILENAME=${i%.*}
mkdir ${FILENAME}
cp $i ${FILENAME}/1.png
cp $i ${FILENAME}/2.png
cd ${FILENAME}
ffmpeg -i 1.png -vf palettegen palette.png && ffmpeg -f image2 -r 1 -i %d.png -i palette.png -filter_complex paletteuse "../${GIFD} GIF/${FILENAME}.gif"
cd -
rm -r ${FILENAME}
done
import os
import glob
import shutil
import subprocess
os.makedirs('./GIF')
pngtati = glob.glob("*.png")
for f in pngtati:
filename = os.path.splitext(os.path.basename(f))[0]
os.makedirs('kari')
shutil.copyfile(f, "kari/1.png")
shutil.copyfile(f, "kari/2.png")
os.chdir('./kari')
subprocess.call('ffmpeg -f image2 -r 1 -i %d.png -filter_complex "split [a][b];[a] palettegen [p];[b][p] paletteuse" "../GIF/' + filename + '.gif"', shell=True)
os.chdir('..')
shutil.rmtree('kari')
subprocessモジュール
でシェルコマンドを実行させています。
ffmpegのところは FORMAT関数使って
cmd = 'ffmpeg -f image2 -r 1 -i %d.png -filter_complex \"split [a][b];[a] palettegen [p];[b][p] paletteuse\" \"../GIF/{}.gif\"'.format(filename)
subprocess.call(cmd, shell=True)
でも良いかと思います。
お好きな方をどうぞ
シェルスクよりこちらの方が軽いか
---
例
日本の擬人化二人 (NE式モデルさんとアニメの引用です)
上の方は 私の手描きです。
---
試し
自前の透過APNG画像作ってLINEにupしても透過して表示されなかった。
---
---
resizeする時は
リサイズしない状態で パレット作成してから、リサイズしたものを回すと良いです。
450pxくらいが良いかと
·プレビューのリサイズと sipsのリサイズは少し違います。
---