2009-09-18 9 views
10

मेरे पास पाइथन कोड है जो तस्वीरों के लिए केवल कुछ साधारण चीजें करने की आवश्यकता है: फसल, आकार बदलें, और वॉटरमार्क ओवरले करें। मैंने पीआईएल का उपयोग किया है, और पुन: नमूना/आकार बदलना परिणाम हैं। मैंने imagemagick का उपयोग किया है, और इंटरफ़ेस और कमांड को एक बॉक्स में एक बिल्ली को पैकेजिंग करके डिज़ाइन किया गया था, और फिर बार-बार इसे कीबोर्ड पर सीढ़ियों के सेट पर फेंक दिया गया था।पायथन इमेजिंग विकल्प

मैं ऐसा कुछ ढूंढ रहा हूं जो पीआईएल या इमेजमैजिक नहीं है जिसे मैं पाइथन के साथ सरल, उच्च-गुणवत्ता वाली छवि परिवर्तन करने के लिए उपयोग कर सकता हूं। उस मामले के लिए, यदि कमांड लाइन इंटरफ़ेस अच्छा है तो उसे पाइथन बाइंडिंग भी नहीं होनी चाहिए।

ओह, और इसे अपेक्षाकृत प्लेटफॉर्म अज्ञेयवादी होने की आवश्यकता है, हमारे उत्पादन सर्वर लिनक्स हैं, लेकिन हमारे कुछ देव विंडोज़ पर विकसित होते हैं। पुस्तकालय के रूप में उपयोग करने के लिए इसे मूर्खतापूर्ण गुई कोड के समूह की स्थापना की आवश्यकता नहीं हो सकती है।

+1

आप थोड़ी देर लग रहे होंगे। पीआईएल के अलावा पियामैजिक एकमात्र चीज है। –

+3

लोग पीआईएल को स्वीकार्य कैसे पाते हैं? किसी भी आकार बदलने का ऑपरेशन (यहां तक ​​कि डाउनसमलिंग) एंटीअलियास रीसाम्प्लिंग सेटिंग के साथ भी कलाकृतियों और धुंध पैदा करता है। मैंने इसे परिणाम देने के लिए घंटों तक कोशिश की है जिसे मैं स्वीकार करूंगा, लेकिन फ़ोटोशॉप या जीआईएमपी जैसे डेस्कटॉप टूल्स की तुलना में, पीआईएल का आकार दयनीय है। –

+1

मैं उत्पन्न करने के लिए एंटीअलियास के साथ आकार बदलता हूं, दस्तावेज़ जनरेशन ऐप के लिए थंबनेल, और वे तुलनात्मक हैं कि एक्रोबैट पीडीएफ दर्शक –

उत्तर

17

मैंने पीआईएल का उपयोग किया है, और पुन: नमूना/आकार बदलना परिणाम हैं।

वे आप के रूप में किया जाना चाहिए नहीं है, जब तक: आकार बढ़ाए जाने के संचालन के लिए संचालन

  • उपयोग केवल Image.BICUBIC छानने downscaling के लिए फ़िल्टरिंग

    1. उपयोग केवल Image.ANTIALIAS।
    2. आकार बदलने से पहले 'आरजीबी' रंग मोड में कनवर्ट करना याद रखें यदि आप पैलेट की गई छवि
    3. का उपयोग नहीं कर रहे हैं। थंबनेल() का उपयोग न करें। यह
  • +0

    आप जानते हैं कि, कुछ और परीक्षणों के बाद, परिणाम * छवि *ANTIALIAS एल्गोरिदम का उपयोग करके, थंबनेल के विरोध में आकार के साथ बेहतर * हैं। अगर मैं इसके बारे में सोचता हूं तो मैं विभिन्न परिचालनों के कुछ नमूना परिणाम पोस्ट करूंगा। –

    +1

    http://stackoverflow.com/questions/1386400/pil-image-resizing-algorithm-similar-to-firefoxs देखें - यह बिल्कुल पसंद नहीं है लेकिन थंबनेल() के साथ कुछ गलत है करते हुए। – bobince

    +0

    बस बिंदु 5 को मजबूत करना चाहता था। यह याद रखना आसान है, और यह समस्या मूल रूप से शिकायत करने वाली समस्याओं का प्राथमिक कारण है। –

    1

    पीआईएल अच्छा आकार बदल सकता है। सुनिश्चित करें कि आपकी स्रोत छवि आरजीबी मोड में है, पैलेट रंग नहीं है, और विभिन्न एल्गोरिदम विकल्पों को आजमाएं।

    +0

    करता है मैंने हमेशा इसे सादे ओल 'जेपीईजी पर उपयोग किया है। Image.open ('myfile.jpg'), फिर Image. थंबनेल या Image.resize, Image.save के बाद ... सभी डाउनसमैलिंग के लिए एंटीअलियास सेटिंग के साथ। यह डिफ़ॉल्ट रूप से आरजीबी मोड में होना चाहिए (जेपीजी आरजीबी हैं) और डाउनसमैप्लिंग के लिए सबसे अच्छा एल्गोरिदम के साथ, सही? अगर मुझे कुछ याद आ रहा है तो मुझे यह जानना अच्छा लगेगा कि मुझे क्या गलत है ... –

    +0

    स्रोत कोड और स्रोत छवियों को देखे बिना, यह कहना मुश्किल है कि क्या हो रहा है। बहुत सारे लोग इस तरह के काम के लिए पीआईएल का उपयोग करते हैं और परिणामों से खुश हैं। आपके मामले के बारे में कुछ अलग है (क्या आपके पास विशेष रूप से ईगल आंखें हैं?), लेकिन हमने अभी तक यह नहीं पता लगाया है। –

    1

    जबकि छवि मैगिक वास्तव में ओपन-सोर्स इमेजिंग लाइब्रेरी प्रतीत होता है, संभवतः DevIL (क्रॉस प्लेटफ़ॉर्म, सरल छवि संचालन करने लगता है) या FreeImage

    1

    आप pypi जांच की है जब JPEGs बचत

  • कुछ उचित करने के लिए quality= स्तर सेट बकवास (डिफ़ॉल्ट काफी कम है)? एक सरसरी खोज वहां कुछ छवि संबंधित उपकरण दिखाती है, मैंने पाइथन-जीडी भी खोजा, कोई संकेत नहीं कि यह कितना उपयोगी हो सकता है।

    मुझे कभी भी पीआईएल के साथ कोई समस्या नहीं है, लेकिन कुछ प्रकार की विविधता दिलचस्प हो सकती है।

  • 1

    जीआईएमपी का उचित कमांड लाइन इंटरफ़ेस है, मुझे लगता है।

    hxxp: //pypi.python.org/pypi/collective.croppingimagefield/0.1beta

    hxxp: //pypi.python.org/

    +0

    दुर्भाग्य से जीआईएमपी को जीटीके + की आवश्यकता है, जो एक हेडलेस सर्वर पर स्थापित करने के लिए एक काफी मूर्ख पुस्तकालय है। –

    1

    इन इमेजिंग पुस्तकालयों में से कुछ पर एक नज़र डालें pypi/cropresize/0.1.1

    hxxp: //pypi.python.org/pypi/image_resize/1।0

    0

    पिछली बार मैंने तुलना में, इस downscaler के उत्पादन GIMP के "घन" विकल्प के लगभग समान होता है:

    import Image 
    
    def stretch(im, size, filter=Image.NEAREST): 
        im.load() 
        im = im._new(im.im.stretch(size, filter)) 
        return im 
    

    IIRC, मतभेद नेत्रहीन अप्रभेद्य हैं - कुछ पिक्सेल +/- 1 कारण मान गोलाकार, और वे किनारों के चारों ओर घूमते हैं। यह या तो धीमा नहीं है।

    सीएफ: http://www.mail-archive.com/[email protected]/msg00248.html

    2

    मैं क्यों Image.thumbnail इस तरह आलोचना हो रही है के रूप में अनिश्चित हूँ। वर्तमान रिलीज में कि मैं इसे बंद कर रहा हूं वांछित आकार को समझने और छवि को आकार में बदलने से थोड़ा अधिक करता है। जब तक आप उचित अनुकरण फ़िल्टर का उपयोग कर रहे हों और पहले आरजीबी में कनवर्ट करें (जैसा कि बॉबन्स कहते हैं) थंबनेल आकार बदलने से अलग नहीं होना चाहिए।

    यहाँ थंबनेल विधि के लिए वास्तविक स्रोत है:

    def thumbnail(self, size, resample=NEAREST): 
        # preserve aspect ratio 
        x, y = self.size 
        if x > size[0]: y = max(y * size[0]/x, 1); x = size[0] 
        if y > size[1]: x = max(x * size[1]/y, 1); y = size[1] 
        size = x, y 
    
        if size == self.size: 
         return 
    
        self.draft(None, size) 
    
        self.load() 
    
        try: 
         im = self.resize(size, resample) 
        except ValueError: 
         if resample != ANTIALIAS: 
          raise 
         im = self.resize(size, NEAREST) # fallback 
    
        self.im = im.im 
        self.mode = im.mode 
        self.size = size 
    
        self.readonly = 0 
    
    0

    मैं जनहित याचिका का उपयोग किया है, और प्रतिदर्श चैनल/आकार बदलने के परिणाम भयानक हैं।

    पीआईएल में आकार बदलना कई तरीकों से टूट गया था और पीआईएल लंबे समय तक बनाए रखा नहीं गया है। Pillow 2.7 से शुरू होने से अधिकांश समस्याएं नाटकीय रूप से प्रदर्शन सुधार के साथ तय की जाती हैं। सुनिश्चित करें कि आप latest Pillow का उपयोग कर रहे हैं।

    संबंधित मुद्दे