2011-08-25 5 views
23

रेल 3.0 में कैरियरवेव का उपयोग करना आप कोड कोड बनाने के बारे में कैसे जाएंगे, जिसमें 500 पिक्सेल से अधिक चौड़ाई 500 पिक्सल चौड़ी होनी चाहिए और ऊंचाई को समायोजित करें - उसी प्रारंभिक अनुपात को बनाए रखना चौड़ाई से ऊंचाई तक।कैरियरवेव और एक विशिष्ट चौड़ाई का आकार बदलें

+0

के संभावित डुप्लिकेट [Carrierwave - निर्धारित चौड़ाई के लिए छवियों का आकार बदलना] (http://stackoverflow.com/questions/8570181/carrierwave-resizing-images-to-fixed-width) –

+0

यह डुप्लिकेट नहीं है - यह एक आयाम के साथ पहलू अनुपात रखने के बारे में है। – sevenseacat

उत्तर

-4

मान लिया जाये कि आप RMagick या MiniMagick उपयोग कर रहे हैं, अपने अपलोड करने वाले वर्ग को यह पंक्ति जोड़ें:

process :resize_to_fit => [500] 

और जानकारी:

http://carrierwave.rubyforge.org/rdoc/classes/CarrierWave/RMagick.html#M000064 http://www.imagemagick.org/RMagick/doc/ image3.html # resize_to_fit

+2

वह छोटी छवियों को उड़ा देगा और साथ ही बड़ी छवियों को कम करेगा। प्रश्न केवल बड़ी छवियों को कम करने के बारे में पूछता है: 'प्रक्रिया: resize_to_limit => [500]' –

+1

क्या आप इस तर्क के टुकड़े में छवि चौड़ाई के लिए पूछ सकते हैं? फिर उपयोग करें और यदि और निर्माण करें। – BuddyJoe

+0

क्या है कि आप वास्तव में करने की कोशिश कर रहे हैं? –

4

मुझे पता है कि यह एक पुराना सवाल है, लेकिन मुझे कुछ इसी तरह की आवश्यकता है।

मैं चाहता था कि छवियों का आकार बदल दिया जाए यदि वे किसी दिए गए आकार से बड़े थे, लेकिन छोटे होने पर स्केल नहीं किए गए थे।

resize_to_limit (चौड़ाई, ऊंचाई)

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

विवरण: http://carrierwave.rubyforge.org/rdoc/classes/CarrierWave/MiniMagick.html#M000051

1

आप केवल चौड़ाई सीमित करना चाहते हैं, का उपयोग करें:

process :resize_to_limit => [500, -1] 

और उपयोग:

process :resize_to_limit => [-1, 500] 

ऊंचाई केवल सीमित करने के लिए।

+0

यह 'ऊंचाई होना चाहिए> = 0: -1' – MaicolBen

30
process :resize_to_limit => [500, 0] 

यह उचित पहलू अनुपात को बनाए रखने और किसी भी ऊंचाई की अनुमति देते हुए छवि को 500px से अधिक व्यापक नहीं करेगा।

+6

कैरियरवेव 0.10.0 और मिनी_मैजिक 3.6.0 के साथ इसका उपयोग करके छवियों को 1x1 पिक्सल तक घटा दिया गया। '[500, शून्य]' का उपयोग करके तर्क के बदले मेरे लिए काम किया। – efatsi

36

आप उपयोग कर सकते हैं:

process :resize_to_limit => [500, nil] 
+0

यह उचित वाक्यविन्यास प्रतीत होता है। – valk

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