内置的MacOS屏幕捕获程序(命令shift-4)有一个很好的特性,您可以点击空格键,只捕获一个窗口,如下所示:

我想以编程的方式查看一个图像目录(它们是PNG),确定它们是否有阴影,并自动裁剪它。我需要这个在Mac上运行。我想用Python写这个。我被告知,枕头现在是用Python管理图像的正确方法,但我不知道如何读取单个像素和裁剪图像。
发布于 2013-09-30 20:25:40
下面的代码使用和Python2.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-08-17 22:05:57
以下是一些建议,不管您将使用哪个库。
窗口上有不变量:4个角,标题栏,大部分颜色一致,3个圆盘形状的按钮。
如果你能检测到按钮和标题栏,你可以很容易地找到顶部的角落。底部的角与顶部的角对称。
可能的解决办法
有了四个角,你就知道窗口的边框了,就可以解决裁剪问题了。
https://stackoverflow.com/questions/18293290
复制相似问题