mieki256's diary



2011/09/23(金) [n年前の日記]

#1 [prog] Python+PILで画像を縮小

単純に2倍拡大した画像を、単純に1/2のサイズに縮小するために、Python 2.6.6 + PIL を使用。通常のCGソフトだと画質をそれなりに維持するためにもっと複雑な処理・アルゴリズムを使って拡大縮小をしてしまうので、欲しい画像が得られないだろうと推測したわけで。

以下が、フォルダ内にあるpng画像を1/2のサイズにしてbmpで保存し直すスクリプト。
import os
import sys
import glob
import Image

in_dir = '..\\640x480\\'
in_ext = '*.png'
out_ext = '.bmp'

# フォルダ内の全ての画像ファイルに対して処理を行う
for infile in glob.glob(in_dir + in_ext):
    filename, ext = os.path.splitext(infile) # フォルダ名+ファイル名、と、拡張子に分けておく
    
    im = Image.open(infile) # 画像を開く
    src_pix = im.load() # 各ピクセルにアクセスしやすくするための準備
    
    src_w, src_h = im.size # 画像の縦横幅を取得
    dst_w = src_w / 2
    dst_h = src_h / 2
    print "%s %s : w,h=%d,%d -> %d,%d" % (filename, ext, src_w, src_h, dst_w, dst_h)

    dst_im = Image.new('RGB', (dst_w, dst_h)) # 新規画像作成
    dst_pix = dst_im.load()

    # 出力先画像の全ピクセルに対して処理
    for y in range(dst_h):
        for x in range(dst_w):
            dst_pix[x,y] = src_pix[x*2, y*2]

    # 新規画像を保存
    outfile = filename + '_half' + out_ext
    dst_im.save(outfile, "BMP")
無駄な部分はあるけど求める画像は得られたから良し。

以上です。

過去ログ表示

Prev - 2011/09 - Next
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project