matplotlib、PIL(python Image library)、OpenCVなどあります
from PIL import Image
img = Image.open('graph1.png') # 元となる画像の読み込み
img.show() # 各OSの標準ビューアが開く。
input('任意入力 縮小画像>> ') # キー入力(Enterで進む)
#resize_img = img.resize((16*50, 9*50)) # ワイドリサイズ。サイズは幅と高さをtupleで指定
resize_img = img.resize((16*50, 10*50)) # WXGA比率リサイズ。サイズは幅と高さをtupleで指定
resize_img.show() # 新しいビューアが開く。
exit()
上記のコメントに示すような動作でイメージを表示できます。
Windowsにいおいて、プログラムが終了してもビューアが開いたままで、
マニュアル操作で、ビューアを閉じる必要がありました。
from PIL import Image
imgBack = Image.open('res/image501.jpg') # 背景画像の読み込み
width, height = imgBack.size #オリジナル画像の幅と高さを取得
imgCanvas = Image.new('RGB', (width, height)) # オリジナル画像と同じサイズのImageオブジェクトを作成する
# imgCanvas = Image.new('RGBA', (width, height)) # オリジナル画像と同じサイズのImageオブジェクトを作成する
img_eyeWhite = Image.open('res/eyeWhite.gif', 'r')# 画像を読み込み
img_eyeball = Image.open('res/eyeball.png', 'r')
img_eyelid = Image.open('res/eyelid.png', 'r')
img_neck = Image.open('res/neck.png', 'r')
img_Face = Image.open('res/Face.png', 'r')
img_mouth = Image.open('res/mouth.png', 'r')
fx,fy= 0, 0
imgCanvas.paste(imgBack, (fx,fy))
imgCanvas.paste(img_eyeWhite, (fx+50,fy+100))
imgCanvas.paste(img_eyeball, (0, 0),img_eyeball)# 以降は、第3引数で、透過ありの描画
imgCanvas.paste(img_eyelid, (0, 0),img_eyelid)
imgCanvas.paste(img_neck, (0, 0),img_neck)
imgCanvas.paste(img_Face, (0, 0),img_Face)
imgCanvas.paste(img_mouth, (0, 0),img_mouth)
imgCanvas.show() # 各OSの標準ビューアが開く。
from PIL import Image, ImageDraw, ImageFont
draw = ImageDraw.Draw(imgCanvas) # 描画ツール('PIL.ImageDraw.ImageDraw'クラス)の取得
type(draw)
font = ImageFont.truetype('/Library/Fonts/ipaexp.ttf', 15) # フォントの種類とサイズを指定
draw.text((10, 10), 'Hello World') #,font=font, fill='#000') # 文字列描画
draw.line([(10,10),(100,100)], fill=128,width=5)
imgCanvas.show() # 各OSの標準ビューアが開く。
imgCanvas.show.save('temp.jpg', 'JPEG', quality=100, optimize=True) # ファイルに保存
del draw
上記で示したよに、様々な.png .jpg .gif と様々なフォーマットに対する保存と読み込みが可能なモジュールです。画像処理用のモージュールですが、カメラ撮影も可能です。.png や .jpgの読み込み、保存も可能
(なお.gif関連はPILで行うことにしている)
2つの画像を1秒ごとで交互に6回切り替えを行うプログラムです。
pip install opencv-python でモジュール追加が必要です。
import cv2
img1 = cv2.imread("graph1.png")
img2 = cv2.imread("graph2_original.png")
img=img1
for n in range(6): # Enterを入力すると、表示画像を変更する
cv2.imshow("Loaded image",img) # "Loaded image"の名前のビューアを表示または、更新
cv2.waitKey(1000) # 表示して1秒間待つ(任意キーを押すと、その時点でリターン)
#keycode = cv2.waitKey(0) # 引数0でキーが押されるまで待ちます。(戻り値はintのキーコード)
if img is img1 :# imgの参照情報を交互に変更
img=img2
else:
img=img1
cv2.destroyAllWindows() # 作られた全てのウィンドウを閉じる(無くてもプログラム終了で閉じる)