1. PILライブラリの概要:PILライブラリは、画像のアーカイブと画像処理の機能要件を完了することができます。(1)画像アーカイブ:画像のバッチ処理、画像プレビューの生成、画像フォーマット変換など;(2)画像処理:基本的な画像処理、ピクセル処理、色処理など
PILライブラリについてImageクラスの分析手順()
画像ファイルをロードするには、im = Image.open( 'Image save location')、画像を保存したいim.save( 'Want to save the image location')
以下では、いくつかの例を使用して説明します。
#im.thumbnail =((128,128))imのサムネイルを生成します。(128,128)はサムネイルのサイズです。
PILインポート画像から#参照PILライブラリ im = Image.open( 'C:/ Users / 86183 / Desktop / WeChat picture_20200414133515.jpg')#画像を開く im.thumbnail((128,128))#画像のサムネイル、バイナリ(128,128)は、生成された画像のサイズです im.save( 'C:/Users/86183/Desktop/suolvutu1.jpg')#保存
<オリジナル画像 <サムネイル
色替えの例
PILインポート画像から im = Image.open( 'C:/ Users / 86183 / Desktop / WeChat picture_20200414134749.jpg') r、g、b = im.split()#RGBチャネルを 取得newg = g.point(lambda i:i * 0.9) #G チャネルのカラー値を元のnewb = b.pointの0.9倍に変更します(lambda i:i <100) #B チャネル値が100 om未満のピクセルポイントを選択しますom = Image.merge(im。 mode、(r、newg、newb))#3つのチャネルを組み合わせて新しい画像 om.save( 'C:/ Users / 86183 / Desktop / color change.jpg')#出力画像
<原画:<色替え後
画像のフィルタリングと拡張:次のように、ImageクラスのFilter()メソッドを使用してImageFilterクラスを使用します。Image.filter(ImageFliter.fuction)
画像の輪郭を取得します。オリジナル画像同上
PILインポート画像からPILインポート画像 からImageFilter im = Image.open( 'C:/ Users / 86183 / Desktop / WeChat picture_20200414134749.jpg') om = im.filter(ImageFilter.CONTOUR) om.save( 'C:/ユーザー/ 86183 /デスクトップ/ profile.jpgを取得 ')
<概要
画像のフィルタリングと拡張:
ImageFilter.EMBOSSを使用すると、画像にレリーフ効果を生み出すことができます。具体的な操作は次のとおりです。
PILインポートイメージからPILインポートイメージ からImageFilter im = Image.open( 'C:/ Users / 86183 / Desktop / WeChat image_20200414134749.jpg') om = im.filter(ImageFilter.EMBOSS) om.save( 'C:/ユーザー/ 86183 /デスクトップ/レリーフmap.jpg ')
<エンボス
絵文字描画:
ビットマップ画像は、さまざまな色のピクセルで構成される規則的な分布です。ピクセルの代わりに文字列を使用すると、画像は文字の描画になります。
PILインポート画像から ascii_char = list( '"$%_&WM#* oahkbdpqwmZO0QLCJUYXzcvunxr \ jft / \ |()1 {} []?-/ + @ <> i!;:、\ ^`。') def get_char(r 、b、g、alpha = 256): if alpha == 0: return '' gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b) unit = 256 / len(ascii_char) return ascii_char [int(gray / / unit)] def main(): im = Image.open( 'file:/// C:/ Users / 86183 / Desktop /微信图片_20200414182738.png') WIDTH、HEIGHT = 100,100 im = im.resize(( WIDTH、HEIGHT)) txt = "" for i in range(HEIGHT): for j in range(WIDTH): txt + = get_char(* im.getpixel((j、i))) fo = open( "zifuhua.txt "、" w ") fo。書き込み(txt) fo.close() main()
<原画<キャラクター写真
上記の例に加えて、PILはGIF画像を作成し、GIF画像を抽出することもできます。
PILインポートイメージから im = Image.open( 'C:/Users/86183/Desktop/2016120211583958491.gif')を 試してください: im.save( 'C:/ Users / 86183 / Desktop / tiquzhenshu {:03d} .png'。 format(im.tell())) while True: im.seek(im.tell()+ 1) im.save( 'C:/ Users / 86183 / Desktop / tiquzhenshu {:02d} .png'.format(im .tell())) を除く: print( '操作完了')
<オリジナルGIF画像