RefineryCMS में छवियों के लिए वॉटरमार्क जोड़ना

अक्सर साइट पर छवियों पर वॉटरमार्क लगाने के लिए कार्य उठता है। आमतौर पर, अधिकांश डेवलपर्स समस्या नहीं देखते हैं (कई PHP सीएमएस इसे बॉक्स से बाहर निकालते हैं), लेकिन रेल और रिफाइनरीसीएमएस इंजन की दुनिया में, चीजें इतनी चिकनी नहीं हैं।
रिफाइनरी ड्रैगनफ़्लिक (रैक पर आधारित छवियों के साथ काम करने और मक्खी पर प्रसंस्करण छवियों के लिए एक विशेष मणि) का उपयोग करती है और इसमें कुछ कठिनाइयां हो सकती हैं।

बिल्ली के नीचे, यह रिफाइनरीसीएमएस में मुख्य छवि पर एक वॉटरमार्क छवि के ओवरले का उपयोग करके छवि पर वॉटरमार्क बनाने का तरीका बताया गया है।


बेशक आपको एक पारदर्शी पृष्ठभूमि png एक्सटेंशन के साथ एक चित्र की आवश्यकता है। हम इसे वॉटरमार्क कहते हैं। इसे प्रोजेक्ट की सार्वजनिक / निर्देशिका में रखें।

अब साइन ओवरलैप बनाने के तरीके के बारे में। ड्रैगनफ़्लू को इमेज प्रोसेसर के लिए बहुत समर्थन है। प्रसंस्करण की मूल बातें प्रलेखन में वर्णित हैं।

तो आइए इमेज प्रोसेसिंग के लिए अपनी खुद की क्लास बनाएँ, जो वॉटरमार्क को सुपरमिज़ करेगी:

class ImageProcessor def watermark(temp_object) tempfile = new_tempfile args = " -dissolve 50% -gravity south #{Rails.root}/public/watermark.png #{temp_object.path} #{tempfile.path}" full_command = "composite #{args}" result = `#{full_command}` tempfile end private def new_tempfile(ext=nil) tempfile = ext ? Tempfile.new(['dragonfly', ".#{ext}"]) : Tempfile.new('dragonfly') tempfile.binmode tempfile.close tempfile end end 


ड्रैगनफली के लिए प्रोसेसर बनाने का मूल विचार यहां से लिया गया है । अब कोड को पार्स करते हैं।
कक्षा में 2 विधियाँ हैं।
New_tempfile पद्धति एक अस्थायी फ़ाइल बनाती है - यह "आउटपुट" होगा (यह छवि ओवरले ऑपरेशन का परिणाम है) जिसका उपयोग ImageMagick कमांड में किया गया है।
वॉटरमार्क विधि तदनुसार वॉटरमार्क जोड़ने की हमारी विधि है। यहां सब कुछ सरल है: तर्क temp_object एक ड्रैगनफ़्लू इमेज ऑब्जेक्ट है। अगला, हम एक अस्थायी फ़ाइल बनाते हैं और ImageMagick से समग्र कमांड के लिए तर्क लिखते हैं, जो हमें छवि को ओवरले देगा। यह एक सरल और अनुकूलित संस्करण नहीं है, इसलिए वॉटरमार्क.पिंग फ़ाइल का मार्ग यहीं सूचीबद्ध है। तर्क:
-Dissolve 50% पारदर्शिता जोड़ता है।
-गर्भावस्था दक्षिण प्लेसमेंट नीचे।
{{Rails.root} /public/watermark.png - वॉटरमार्क फ़ाइल का पथ।
{{temp_object.path} - स्रोत छवि का पथ।
{{tempfile.path} - हमारी अस्थायी फ़ाइल का पथ। यह बाद की है जिसमें अंतिम "चिपकी" छवि होगी।

अब हमें आवेदन के लिए प्रसंस्करण के लिए हमारी कक्षा को कनेक्ट करना होगा। आप निम्नलिखित सामग्री के साथ एक अलग कॉन्‍फ़िगर / इनिशलाइज़र / ड्रैगनफ़्लू.आरबी फ़ाइल बना सकते हैं:

 app = Dragonfly[:refinery_images] app.processor.register(ImageProcessor) 

पहली पंक्ति रिफाइनरीसीएमएस से तथाकथित "ड्रैगनफ़्लू एप्लीकेशन" प्राप्त करती है, दूसरी पंक्ति सीधे हमारी कक्षा को पंजीकृत करती है।

अब आप इसे इस तरह से उपयोग कर सकते हैं:
 <%= image_tag image.thumbnail('800x600#').process(:watermark).url %> 

हमारी तस्वीर पहले से ही वॉटरमार्क के साथ प्रदर्शित की जाएगी। इस प्रकार, ड्रैगनफ्लाई से प्रक्रिया विधि किसी भी पंजीकृत प्रोसेसर के साथ काम कर सकती है।

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

Source: https://habr.com/ru/post/In193160/


All Articles