का उपयोग कर ट्रिम व्हाइटस्पेस क्या पीआईएल में छवि पर व्हाइटसाइट को ट्रिम करने का कोई आसान समाधान है?पीआईएल
ImageMagick निम्नलिखित तरीके से इसके लिए आसान समर्थन हासिल है:
convert test.jpeg -fuzz 7% -trim test_trimmed.jpeg
मैं जनहित याचिका के लिए एक समाधान पाया:
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)
लेकिन इस समाधान नुकसान हैं:
- मैं करने की जरूरत है
border
रंग परिभाषित करें, यह मेरे लिए एक बड़ा सौदा नहीं है, मेरी छवियों में सफेद पृष्ठभूमि है - और सबसे अधिक नुकसान, यह पीआईएल समाधान ImageMagick की
-fuzz
कुंजी का समर्थन नहीं करता है। कुछ अस्पष्ट फसल जोड़ने के लिए। क्योंकि मेरे पास कुछ जेपीईजी संपीड़न कलाकृतियों और अनियंत्रित विशाल छायाएं हो सकती हैं।
क्या पीआईएल के कुछ कार्यों में इसका निर्माण हो सकता है? या कुछ तेज समाधान है?
मैं जानता हूँ कि कोड ठीक उसी होती है, लेकिन यह भी पाया जा सकता है - https://gist.github.com/mattjmorrison/932345 –