我在ruby应用程序中使用以下“ rmagick” gem版本来处理图像。
gem 'rmagick', '~> 2.15.4'
有时候(大约100倍中的1幅)图像无法正确调整大小,并且其下半部分变为灰色(尽管不是我为背景设置的灰色),有时图像也变得模糊。
这是我的示例代码:
url_img = open(URI.encode(object.url))
image = Magick::ImageList.new
image.from_blob(url_img.read)
final_image_name = image_name(object, object_type)
img_size = [image[0].columns, image[0].rows]
if img_size[0] > img_size[1]
dimensions = [size[1],(size[1] * img_size[1]/img_size[0])]
else
dimensions = [(size[2]*img_size[0]/img_size[1]),size[2]]
end
resized_image = image.resize(dimensions[0],dimensions[1])
resized_image = resized_image.strip!
watermarked_image = resized_image
watermarked_image.units = Magick::PixelsPerInchResolution
watermarked_image.set_channel_depth(Magick::AllChannels,8)
watermarked_image.density = "72"
watermarked_image.write(temp_file_path)
下面是调整大小后图像变灰的示例。
原始图片:
生成的图像: