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

 

Python

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)

でも良いかと思います。

 

お好きな方をどうぞ

シェルスクよりこちらの方が軽いか

---

 

lineスタンプ風透過画像




日本の擬人化二人     (NE式モデルさんとアニメの引用です) 
上の方は 私の手描きです。

---

試し
自前の透過APNG画像作ってLINEにupしても透過して表示されなかった。


---

---


resizeする時は
リサイズしない状態で パレット作成してから、リサイズしたものを回すと良いです。
450pxくらいが良いかと

·プレビューのリサイズと sipsのリサイズは少し違います。

 

---