Eug*_*rny 47 python imagemagick python-imaging-library
是否有一个简单的解决方案来修剪PIL中的图像空白?
ImageMagick通过以下方式轻松支持它:
convert test.jpeg -fuzz 7% -trim test_trimmed.jpeg
Run Code Online (Sandbox Code Playgroud)
我找到了PIL的解决方案:
from PIL import Image, ImageChops
def trim(im, border):
bg = Image.new(im.mode, im.size, border)
diff = ImageChops.difference(im, bg)
bbox = diff.getbbox()
if bbox:
return im.crop(bbox)
Run Code Online (Sandbox Code Playgroud)
但是这个解决方案有缺点:
border
颜色,这对我来说不是什么大问题,我的图像有白色背景-fuzz
密钥.添加一些模糊裁剪.因为我可以有一些jpeg压缩工件和不需要的巨大阴影.可能PIL有一些内置的功能吗?还是有一些快速解决方案?
fra*_*xel 108
我不认为PIL内置任何可以做到这一点的东西.但我修改了你的代码,所以它会这样做.
getpixel
,因此您无需传递颜色.100, 100, 100
(在我的示例中)下的所有值饱和到零的快速方法.因此,一种巧妙的方法可以消除因压缩而产生的任何"摆动".码:
from PIL import Image, ImageChops
def trim(im):
bg = Image.new(im.mode, im.size, im.getpixel((0,0)))
diff = ImageChops.difference(im, bg)
diff = ImageChops.add(diff, diff, 2.0, -100)
bbox = diff.getbbox()
if bbox:
return im.crop(bbox)
im = Image.open("bord3.jpg")
im = trim(im)
im.show()
Run Code Online (Sandbox Code Playgroud)
重压jpeg:
七分裤:
吵闹的jpeg:
七分裤:
小智 6
使用魔杖http://docs.wand-py.org/en/0.3-maintenance/wand/image.html
修剪(颜色=无,模糊= 0)从图像中删除实线边框。默认情况下使用左上角像素作为指导,或者您也可以指定要删除的颜色。
归档时间: |
|
查看次数: |
24476 次 |
最近记录: |