Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Ruby

MiniMagick के साथ रूबी में इमेज ट्रांसफॉर्मेशन में महारत हासिल करें

यदि आप अपने रूबी एप्लिकेशन में किसी भी प्रकार की इमेजेज के साथ काम करते हैं, तो एक अच्छा मौका है कि आप उन्हें एक तरह से या किसी अन्य तरीके से बदलना चाहेंगे।

जैसे उन्हें रिसाइज़ करके स्पेस बचाना और अपने उपयोगकर्ताओं के लिए तेज़ डाउनलोड।

लेकिन आप यह कैसे कर सकते हैं?

MiniMagick एक जेम है जो आपकी मदद कर सकता है।

यह ImageMagick प्रोग्राम और आपके रूबी कोड के बीच एक इंटरफेस है।

यह आपकी इमेजेज पर सभी प्रकार के ट्रांसफॉर्मेशन लागू करने में आपकी मदद करता है ताकि उन्हें आपकी आवश्यकताओं के अनुसार अनुकूलित किया जा सके!

सबसे पहले:

आपको अपने ऑपरेटिंग सिस्टम पैकेज मैनेजर का उपयोग करके ImageMagick इंस्टॉल करने की आवश्यकता है, या प्रोजेक्ट की वेबसाइट से इंस्टॉलर डाउनलोड करके।

फिर mini_magick के साथ आप अपनी इमेजेज में बदलाव करने के लिए नियमित रूबी मेथड्स का उपयोग कर सकते हैं।

आइए कुछ उदाहरण देखते हैं!

इमेज खोलना

आप दो तरीकों से इमेज खोल सकते हैं:

  1. MiniMagick::Image.open => इमेज की कॉपी बनाता है
  2. MiniMagick::Image.new => मूल इमेज को बदलता है

open मेथड फाइल नाम और URL दोनों लेता है, इसलिए आप वेब से सीधे इमेज खींच सकते हैं।

मैं Unsplash से इस इमेज का उपयोग करने जा रहा हूँ, एक फ्री फोटो शेयरिंग साइट।

MiniMagick के साथ रूबी में इमेज ट्रांसफॉर्मेशन में महारत हासिल करें

आप इमेज को इस तरह लोड कर सकते हैं:

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 कैनवास के बीच के कोऑर्डिनेट्स हैं।

जबकि circle 0,0 2000,0 में 2000 सर्कल की त्रिज्या है।

MiniMagick के साथ बॉर्डर कैसे जोड़ें

mini_magick के साथ बॉर्डर जोड़ना दुनिया की सबसे आसान चीज है।

उदाहरण:

img.border 10

आप रंग को इस तरह सेट कर सकते हैं:

img.bordercolor("white")

write करना न भूलें यदि आप new के बजाय open का उपयोग कर रहे हैं।

इमेज ऑप्टिमाइज़ेशन

इमेजेज को छोटा बनाने के अलावा ऑप्टिमाइज़ किया जा सकता है।

उदाहरण के लिए, आप mini_magick में strip मेथड का उपयोग करके मेटाडेटा हटा सकते हैं।

इस तरह:

image.strip

यदि आप अतिरिक्त ऑप्टिमाइज़ेशन चाहते हैं तो आप image_optim जैसे जेम का उपयोग कर सकते हैं।

इस तरह:

require 'image_optim'
image_optim.optimize_image!('orange.jpg')

वीडियो ट्यूटोरियल देखें

सारांश

आपने mini_magick रूबी जेम का उपयोग करके इमेजेज को बदलना (रोटेट, रिसाइज़, क्रॉप) सीखा!

पढ़ने के लिए धन्यवाद।

  1. PowerToys के साथ Windows 10 पर छवियों का आकार तेजी से बदलें: इमेज रिसाइज़र के साथ संपादन सुव्यवस्थित करें PowerToys के साथ Windows 10 पर छवियों का आकार तेजी से बदलें: इमेज रिसाइज़र के साथ संपादन सुव्यवस्थित करें

    यदि आप पहले से ही PowerToys का उपयोग कर रहे हैं, तो आप अपने जीवन को आसान बनाने के लिए उपलब्ध सभी सहायक यूटिलिटी को पहले से ही जानते होंगे, जिसमें Keyboard Manager शामिल है। PowerToys का एक और बोनस Image Resizer यूटिलिटी है, जो आपको इमेज एडिटर खोलने की आवश्यकता के बिना बल्क में छवियों का आकार बदलने क

  1. Windows PC पर एकाधिक इमेज को आसानी से रिसाइज़ करें – चरण-दर-चरण गाइड Windows PC पर एकाधिक इमेज को आसानी से रिसाइज़ करें – चरण-दर-चरण गाइड

    ब्लॉग सारांश – समय और प्रयास बचाने के लिए Windows के लिए बल्क इमेज रिसाइज़र प्राप्त करें। ब्लॉग पढ़ें और सीखें कि बल्क इमेज को जल्दी से कैसे रिसाइज़ करें। अलग-अलग प्लेटफॉर्म पर अपलोड करने के लिए इमेज को अलग-अलग आकार का होना आवश्यक है। उन्हें रिसाइज़ करने के लिए, हमें इमेज एडिटिंग टूल्स के अला

  1. इमेज रिसाइज़र टूल के साथ इमेज ओरिएंटेशन और स्केलिंग में महारत हासिल करें: चरण-दर-चरण गाइड इमेज रिसाइज़र टूल के साथ इमेज ओरिएंटेशन और स्केलिंग में महारत हासिल करें: चरण-दर-चरण गाइड

    एक तस्वीर हजार शब्दों के बराबर होती है और इसलिए हम में से अधिकांश पैराग्राफ पढ़ने के बजाय छवियों को देखना पसंद करते हैं। और यह वही प्रवृत्ति है जिसने इन्फोग्राफिक्स और सूचनात्मक तस्वीरों को जन्म दिया है जो भाषा की बाधा को तोड़ते हुए समझने में आसान हैं। ऐसा सामान बनाने के लिए, आपको बहुत सारी छवियों क