本記事では、Pythonを用いて、PNG画像の色を変更して、ブログ画像やサムネイルに使えるオリジナル画像の作り方をご紹介します。
想定読者
・PNG画像の色を変更して、ブログやサムネイルで使えるオリジナル画像を作りたい。
・PythonでPNG画像の色を変更する方法を知りたい。
PNG画像の色を変更してブログ画像を作成する
ブログ画像やサムネイル作るときって、何かアイコンを入れたいってよくあります。
そんな時はPNGの背景が投影な画像(透過画像)を使いますよね。
そして、PNG画像をサイトからダウンロードしていざ画像に入れようとしてもちょっと色が合わない。。。
そこで、今回はPNGの透過画像の色を変えて、次のような画像を作る方法をご紹介します。
ブログやサムネイルに使えるオリジナル画像の作成手順
それでは、オリジナル画像の作成手順を説明していきます。
全部で4ステップです。
step
1 Canvaで土台となる画像を作る
Canvaは、Webブラウザ上で無料で画像が作れる便利なサイトです。テンプレートも豊富で、ゼロから作らなくてもOKです。
ここで次のような土台となる画像を作ります。
step
2 好きなPNG画像を選ぶ
次は、自分がアイコンとして追加したいPNG画像を選びます。
アイコンは、次の2つのサイトがおすすめです。
どちらのサイトもシンプルでデザインも素敵です。もちろん無料です。
step
3 Pythonで選んだPNG画像の色を変更する
ここでいよいよPythonが登場します。
詳細は、以下でご紹介します。
step
4 色を変更したPNG画像を土台の画像に追加する
最後に、PNG画像を土台の画像に貼り付けて完成です。
Canvaでは、PC上の画像をアップロードして、画像に追加することができます。
PythonでPNG画像の色を変換する方法
ここでお待ちかねのPythonでPNG画像の色を変換する方法をご紹介します。
Pythonの実行環境
今回は、以下の実行環境でプログラムを実行しています。
・Python 3.7.6
・Jupyterlab 1.2.6
・cv2:4.3.0
テストとして、無料のAi・PNG白黒シルエットイラストからダウンロードした下のPNG画像(透過画像)を使っていきます。
ファイル名は「pc.png」とします。
PythonでPNG画像の色を変換するプログラム
まずは、必要なライブラリをインポートします。
import os
import cv2
import numpy as np
次にテストのPNG画像を読み込みます。今回は、透過画像を使っているため、flags = cv2.IMREAD_UNCHANGEDとして読み込むことがポイントとなります。
img = cv2.imread('pc.png', flags = cv2.IMREAD_UNCHANGED)
そして黒い部分を他の色に変える処理をします。
img2 = np.where(img==[0, 0, 0, 255] , [88, 189, 255, 255], img)
少しプログラムの解説をします。
・黒い部分は、最初の3つ要素(GBR)がゼロで、4つめの透明度を示す要素(0が透明、255が不透明)が255となる[0, 0, 0, 255]になります。
・np.where()は、1つ目の引数で条件を、2つめの引数で条件がTrueの時に置換される値、3つ目は条件がFalseの時の値になります。
ここでは、黒の部分にGBRが[88, 189, 255]の色で不透明とし、黒以外はそのままという処理をしています。
最後に、色を変換したものを画像として保存します。
cv2.imwrite("pc2.png", img2)
色を変換した画像は次の通りとなりました。
そしてこのPNG画像をオリジナル画像に貼り付けます。
背景も黒になってちゃんと貼り付けられてますね。
他のアイコンも同じ手順で追加していきます。
以上が、PythonでPNG画像の色を変えて、オリジナル画像を作る方法でした。
いかがでしたでしょうか。
こんな感じで自分で処理を書くことで、いろいろな画像が作れそうですよね。
これからもどんどんPythonでの便利な使い方・プログラムを紹介していきます。
最後まで読んでいただきありがとうございました。
Pythonを勉強しようか迷ってる・・
まずPythonの環境構築をしたい!!