escalamiento automático RMagick con proporciones
Pregunta
¿Hay una manera para mí de escala y la imagen en RMagick donde hice la anchura y altura de las escalas de automóviles por lo que la imagen contiene las mismas proporciones?
Solución
I utilizar el método resize_to_fit, que utilizará los parámetros proporcionados como el máximo ancho / alto, pero mantendrá la relación de aspecto. Por lo tanto, algo como esto:
@scaled = @image.resize_to_fit 640 640
Esto asegurará que la anchura o la altura no es mayor de 640, pero no va a estirar la imagen dándole un aspecto divertido. Por lo tanto, usted podría terminar con 640x480 o 480x640. También hay un resize_to_fit! método que convertidos en lugar
Si desea cambiar el tamaño de una anchura dada sin respeto a un cuadro delimitador, que tendrá que escribir una función auxiliar. Algo como esto:
@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
Espero que ayude!