1

組み込みの MacOS スクリーン キャプチャ プログラム (command-shift-4) には、次のように、スペースバーを押してウィンドウだけをキャプチャできる優れた機能があります。

ここに画像の説明を入力

プログラムで画像のディレクトリ (PNG) を見て、影があるかどうかを判断し、自動的にトリミングしたいと思います。Macで実行するにはこれが必要です。これをPythonで書きたいと思います。現在、 Pillowは Python で画像を管理する正しい方法であると言われていますが、個々のピクセルを読み取って画像をトリミングする方法がわかりません。

4

2 に答える 2

0

Python Image Library と Python 2.7 を使用してトリックを実行するコードを次に示します。

#!/usr/bin/env                                                                                                                       
# Removes the shadow from MacOS-Generated screen shots.                                                                              

import Image,os

if __name__=="__main__":
    image = Image.open(os.sys.argv[1])
    image = image.convert('RGBA')

    (width,height) = image.size
    def find_first_non_alpha_x():
        for i in range(width):
            if image.getpixel((i,height/2))[3]==255:
                return i
        raise RuntimeError("No non-alpha pixels on midline")

    def find_last_non_alpha_x():
        for i in range(width-1,0,-1):
            if image.getpixel((i,height/2))[3]==255:
                return i
        raise RuntimeError("No non-alpha pixels on midline")

    def find_first_non_alpha_y():
        for i in range(height):
            if image.getpixel((width/2,i))[3]==255:
                return i
        raise RuntimeError("No non-alpha pixels on midline")

    def find_last_non_alpha_y():
        for i in range(height-1,0,-1):
            if image.getpixel((width/2,i))[3]==255:
                return i
        raise RuntimeError("No non-alpha pixels on midline")

    x1 = find_first_non_alpha_x()
    y1 = find_first_non_alpha_y()
    x2  = find_last_non_alpha_x()
    y2  = find_last_non_alpha_y()

    y = image.crop((x1-1,y1-1,x2+1,y2+1))
    y.save(os.sys.argv[1]+"-cropped.png")
于 2013-09-30T20:25:40.640 に答える