यदि आप अपने रूबी एप्लिकेशन में किसी भी प्रकार की छवियों के साथ काम करते हैं, तो एक अच्छा मौका है कि आप उन्हें एक या दूसरे तरीके से बदलना चाहेंगे।
जैसे अंतरिक्ष बचाने और अपने उपयोगकर्ताओं के लिए तेज़ी से डाउनलोड करने के लिए उनका आकार बदलना।
लेकिन आप यह कैसे कर सकते हैं?
MiniMagick एक ऐसा रत्न है जो आपकी मदद कर सकता है।
यह ImageMagick प्रोग्राम और आपके रूबी कोड के बीच एक इंटरफ़ेस है।
यह आपकी छवियों को आपकी आवश्यकताओं के अनुसार अनुकूलित करने के लिए सभी प्रकार के परिवर्तनों को लागू करने में आपकी सहायता करता है!
पहले :
आपको ImageMagick इंस्टॉल करना होगा अपने ऑपरेटिंग सिस्टम पैकेज मैनेजर का उपयोग करना, या प्रोजेक्ट की वेबसाइट से इंस्टॉलर को डाउनलोड करना।
फिर mini_magick
. के साथ आप अपनी छवियों में परिवर्तन करने के लिए नियमित रूबी विधियों का उपयोग कर सकते हैं।
आइए कुछ उदाहरण देखें!
इमेज खोलना
आप एक इमेज को दो तरह से खोल सकते हैं:
MiniMagick::Image.open
=> छवि की प्रतिलिपि बनाता हैMiniMagick::Image.new
=> मूल छवि को बदलता है
open
विधि फ़ाइल नाम और URL दोनों लेती है, ताकि आप सीधे वेब से चित्र खींच सकें।
मैं इस छवि का उपयोग एक निःशुल्क फ़ोटो साझा करने वाली साइट Unsplash से करने जा रहा हूँ।
आप छवि को इस तरह लोड कर सकते हैं :
require 'mini_magick' image = MiniMagick::Image.open( "https://images.unsplash.com/photo-1516295615676-7ae4303c1c63" )
अब जब आपके पास छवि लोड हो गई है तो आप इसके बारे में जानकारी प्राप्त कर सकते हैं, जैसे इसका आकार, आयाम, प्रारूप, आदि।
यहां बताया गया है :
image.dimensions # [3963, 5944] image.type # "JPEG" image.human_size # "20.7663MB"
यह एक बड़ी छवि है, इसलिए इसका आकार बदलें!
साथ ही, मैं इसे घुमाना चाहूंगा ताकि यह लंबवत के बजाय क्षैतिज हो।
आकार बदलें और घुमाएं
आप इस तरह की छवि का आकार बदल सकते हैं:
image.resize "500x500"
यह आपको एक सटीक आयाम देता है, लेकिन यदि आप पक्षानुपात को बरकरार रखते हुए छवि को प्रतिशत तक स्केल करना चाहते हैं…
आप यह कर सकते हैं :
image.resize "25%"
यह मूल आकार के 25% का आकार है, न कि 25% के आकार का।
अब :
फ़ाइल को वापस डिस्क पर लिखकर आपको परिवर्तनों को लागू करने की आवश्यकता है।
यहां बताया गया है :
image.write("/tmp/new_image.jpg")
यदि आपने छवि को सीधे संशोधन के लिए खोला है (new
. का उपयोग करके) , के बजाय open
) तो आपको write
. का उपयोग करने की आवश्यकता नहीं है ।
इमेज कैसे क्रॉप करें
आप छवि के कुछ हिस्सों को काट-छाँट कर उन चीज़ों को हटा सकते हैं जो आप नहीं चाहते हैं और इसे छोटा कर सकते हैं।
वाक्यविन्यास यह है :
<width> x <height> +<xoffset> +<yoffset>
उदाहरण के लिए, यदि आप किसी छवि के निचले आधे हिस्से को काटना चाहते हैं:
image.crop "100%x50%+0+0"
आधी छवि के लंबवत क्रॉप के लिए:
image.crop "50%x100%+0+0"
आप इन नंबरों के साथ तब तक खेल सकते हैं जब तक आपको वह फसल न मिल जाए जिसकी आप तलाश कर रहे हैं।
गोलाकार चित्र बनाना
यदि आप अपनी छवि को गोल बनाना चाहते हैं, तो आपको विधियों के एक सेट को संयोजित करने की आवश्यकता होगी।
इसे पसंद करें :
MiniMagick::Tool::Convert.new do |img| img.size '3900x5000' img << 'xc:transparent' img.fill "apple.jpg" img.draw "translate 2000, 2500 circle 0,0 2000,0" img.trim img << 'circle.png' end
यह दिए गए आकार का एक खाली कैनवास बनाता है, जो उस छवि के आकार का होना चाहिए जिसे आप गोल करना चाहते हैं।
फिर :
यह कैनवास छवि से भरा हुआ है, बीच में एक वृत्त खींचा गया है, और वृत्त के चारों ओर सब कुछ हटा दिया गया है।
अंत में, छवि "circle.png" के रूप में सहेजी जाती है।
ध्यान दें कि translate 2000, 2500
कैनवास के मध्य के लिए निर्देशांक हैं।
जबकि 2000
circle 0,0 2000,0
. में वृत्त की त्रिज्या है।
मिनीमैजिक के साथ बॉर्डर कैसे जोड़ें
mini_magick
. के साथ बॉर्डर जोड़ना दुनिया का सबसे आसान काम है ।
उदाहरण :
img.border 10
आप इस तरह रंग सेट कर सकते हैं:
img.bordercolor("white")
write
करना न भूलें यदि आप open
. का उपयोग कर रहे हैं तो आपके परिवर्तन new
. के बजाय ।
छवि अनुकूलन
छवियों को छोटा करने के अलावा अनुकूलित किया जा सकता है।
उदाहरण के लिए, आप strip
. का उपयोग कर सकते हैं mini_magick
. में विधि मेटाडेटा निकालने के लिए।
इसे पसंद करें :
image.strip
यदि आप अतिरिक्त अनुकूलन चाहते हैं तो आप image_optim
. जैसे रत्न का उपयोग कर सकते हैं ।
इसे पसंद करें :
require 'image_optim' image_optim.optimize_image!('orange.jpg')
वीडियो ट्यूटोरियल देखें
सारांश
आपने mini_magick
का उपयोग करके छवियों को बदलना (घुमाना, आकार बदलना, क्रॉप करना) सीख लिया है रूबी रत्न!
पढ़ने के लिए धन्यवाद।