絵文字増産計画
https://gyazo.com/7b6b51e66fe8a2962e9436cf8faf9a31
10日目担当の横山です。よろしくお願いします。
*openposeを使った楽しいダンスゲームを作ろうと思っていたのですが、予定変更になりました。https://gyazo.com/77e73ced24012c97cc395c9bea3f94bf
(弊MBPのスペックの低さと、思った以上に骨格が取れなかった事が原因)
みんな大好きslack。
自分で作った絵文字やbotが登録できて楽しいですよね。
さて、皆さん。slackの絵文字を登録していくうちにネタが尽きてしまう事はありませんか?
この記事では、一枚の絵から数パターンの絵文字を増産する方法を紹介していきます。
その①:回転
単純な表現ですが、どんな絵文字も生きてくるのでおすすめです。
https://gyazo.com/2373721eb01ca887b46f2efebc990b32
その②:平行移動
絵文字に勢いを付けたい時におすすめです。
https://gyazo.com/5a192ab8695d16f1039b0482d9c42668
この絵文字を連打すると大行列になります。
(pcブラウザで見てください)
https://gyazo.com/5a192ab8695d16f1039b0482d9c42668https://gyazo.com/5a192ab8695d16f1039b0482d9c42668
しかしこれでは単純な回転と平行移動です。
もうひと捻り欲しいです。
突然ですが、唐揚げっておいしいですよね。
https://www.pakutaso.com/shared/img/thumb/PAK85_syokutakubkaraage20150203185651_TP_V.jpg
実はそんなおいしい唐揚げ、食べたり、刈り上げが投げたりするだけじゃなくて他にも使い道があります。
https://gyazo.com/b280515fbdb5f14a675c3793196bca7e
以下に唐揚げの使い方の一例を紹介します。
(クリスタやGIMPなど、お絵かきツールを使用しています。)
① 彩度を0にします。
美味しそうですね。
https://gyazo.com/d94a0d16ee5ae1ee4d94119c960e8a5a
② 階調を反転します。
美味しくなさそうですね。
ここで消しゴムツールなど、何らかの方法で背景を消します。
https://gyazo.com/5a61244e1ac5074eef018dc3b0ca07a5
③ 放射状にぼかします。
からあげに勢いがつきました。
https://gyazo.com/f2fe4b30eb52b86a293e4d7efad15d4e
④ オレンジ単色の画像をオーバーレイして合成します。
explosion!!
https://gyazo.com/ca8073ee4602e00ee7e29ae3a8242b2d
さらに、コントラストを強調すると‥‥?
⑤ LET'S KARAAGE EXPLOSION!!!!
https://gyazo.com/58a8c5ca47c36b6e5d94d8b8bc3c88dc
その③:爆発
唐揚げとぞうさんの組み合わせはなかなか珍しいのではないでしょうか。
多分世界初です。
https://gyazo.com/2d36fee4aa3bf9d2e91572cc8cf05a2d
その④:回転爆発
勢いを付けたいときにおすすめです。
https://gyazo.com/b1e3a07ca0783576ef0d996281f2c09d
以上、ぞうさんを4倍に増産しましたがいかがだったでしょうか?
まだまだ絵文字の増産方法はあるのですが、締め切りを若干オーバーしてしまっているのでここで失礼します。
それでは、良いお年を!!
一発書きで綺麗ではないですが、以下コードです。
その①:回転
code:rollingZousan.py
import numpy as np
import cv2
from PIL import Image, ImageDraw
images = []
baseImageName = "zousan.png"
angle = 10
for i in range(8):
baseImage = cv2.imread(baseImageName)
height = baseImage.shape0 center = (int(width/2), int(height/2))
angle = 45 * i
scale = 1.0
trans = cv2.getRotationMatrix2D(center, angle , scale)
rotatedImage = cv2.warpAffine(baseImage, trans, (width,height))
rotatedImage = cv2.cvtColor(rotatedImage, cv2.COLOR_BGR2RGB)
rotatedImage = Image.fromarray(rotatedImage)
images.append(rotatedImage)
images0.save('rolling_zousan.gif', save_all=True, append_images=images1:, optimize=False, duration=80, loop=0) その②:平行移動
code:shiftingZousan.py
import numpy as np
import cv2
from PIL import Image, ImageDraw
images = []
baseImageName = "zousan.png"
baseImage = cv2.imread(baseImageName)
height = baseImage.shape0 moveNum = int(width / 4)
concatenateBaseImage = baseImage
for i in range(8):
for i in range(8):
shifImage = cv2.cvtColor(shifImage, cv2.COLOR_BGR2RGB)
shifImage = Image.fromarray(shifImage)
images.append(shifImage)
images0.save('shifting_zousan.gif', save_all=True, append_images=images1:, optimize=False, duration=80, loop=0) その③:爆発
code:rollingZousan.py
import numpy as np
import cv2
from PIL import Image, ImageDraw
baseImageName = "zousan.png"
explosionImageName = "karaage.png"
images = []
for i in range(8):
baseImage = cv2.imread(baseImageName , cv2.IMREAD_UNCHANGED)
explosionImage = cv2.imread(explosionImageName, cv2.IMREAD_UNCHANGED)
width = 800
height = int(baseImage.shape0 * width / baseImage.shape1) baseImage = cv2.resize(baseImage, (width,height))
if i > 0:
exHeight = int(height * i * 2 / 8)
exWidth = int(width * i * 2 / 8)
explosionImage = cv2.resize(explosionImage, (exWidth, exHeight))
if height >= exHeight and width >= exWidth:
dstImage = cv2.cvtColor(baseImage, cv2.COLOR_BGR2RGB)
dstImage = Image.fromarray(dstImage)
images.append(dstImage)
images0.save('explosion_rolling_zousan.gif', save_all=True, append_images=images1:, optimize=False, duration=80, loop=0) その④:回転爆発
code:explosionRollingZousan.py
import numpy as np
import cv2
from PIL import Image, ImageDraw
baseImageName = "zousan.png"
explosionImageName = "karaage.png"
images = []
for i in range(8):
baseImage = cv2.imread(baseImageName , cv2.IMREAD_UNCHANGED)
explosionImage = cv2.imread(explosionImageName, cv2.IMREAD_UNCHANGED)
width = 800
height = int(baseImage.shape0 * width / baseImage.shape1) baseImage = cv2.resize(baseImage, (width,height))
center = (int(width/2), int(height/2))
angle = 45 * i
scale = 1.0
trans = cv2.getRotationMatrix2D(center, angle , scale)
baseImage = cv2.warpAffine(baseImage, trans, (width,height))
if i > 0:
exHeight = int(height * i * 2 / 8)
exWidth = int(width * i * 2 / 8)
explosionImage = cv2.resize(explosionImage, (exWidth, exHeight))
if height >= exHeight and width >= exWidth:
dstImage = cv2.cvtColor(baseImage, cv2.COLOR_BGR2RGB)
dstImage = Image.fromarray(dstImage)
images.append(dstImage)
images0.save('explosion_rolling_zousan.gif', save_all=True, append_images=images1:, optimize=False, duration=80, loop=0) コメント
KoheiUmeki.icon Teamsの背景からあげだったんですね笑