سؤال

هل هناك طريقة لي لتوسيع نطاقها في 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

امل ان يساعد!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top