سؤال
هل هناك طريقة لي لتوسيع نطاقها في Rmagick حيث قمت بتعيين العرض ، ومقاييس الارتفاع التلقائي بحيث تحتوي الصورة على نفس النسب؟
المحلول
يمكنني استخدام طريقة distize_to_fit ، والتي ستستخدم المعلمات المقدمة كحد أقصى عرض/ارتفاع ، ولكنها ستحافظ على حصة الجوانب. لذا ، شيء من هذا القبيل:
@scaled = @image.resize_to_fit 640 640
سيضمن ذلك أن العرض أو الارتفاع لا يزيد عن 640 ، ولكنه لن يمتد الصورة مما يجعلها تبدو مضحكة. لذلك ، قد ينتهي بك المطاف بـ 640 × 480 أو 480 × 640. هناك أيضا تغيير حجم _to_fit! الطريقة التي تتحول في مكانها
إذا كنت ترغب في تغيير الحجم إلى عرض معين دون احترام مربع محيط ، فسيتعين عليك كتابة وظيفة مساعد. شيء من هذا القبيل:
@img = Magick::Image::read(file_name).first
def resize_by_width image new_width
@new_height = new_width * image.x_resolution.to_f / image.y_resolution.to_f
new_image = image.scale(new_width, new_height)
return new_image
end
@resized = resize_by_width @img 1024
امل ان يساعد!
لا تنتمي إلى StackOverflow