在古巴使用 RMagick 不断返回 0 作为图像宽度和高度
Using RMagick on Cuba keeps returning 0 as image width and height
我正在编写一个图像裁剪器,我将一些裁剪区域尺寸传递给 post 请求,从请求正文中指定的 URL 下载图像,然后使用 RMagick 裁剪每个规格的图像。由于我需要根据图像调整裁剪区域,因此我需要图像的高度和宽度,但是当我尝试访问它们时,它们都是 0.
require "open-uri"
require "RMagick"
img = Magick::Image.from_blob(open(params['image_url']).read).first
问题出在这里 - 这两个值对于任何图像都是零 URL。
width = img.columns
height = img.rows
这里我尝试根据post请求中传入的指定参数裁剪图片,然后写入文件
img.crop!(params['image_x'].to_f * width, params['image_y'].to_f * height, params['image_width'].to_f * width, params['image_height'].to_f * height, true)
img.write image_name
其他一切正常 - 如果我检查图像,我得到这个:
JPEG 990x743 990x743+0+0 DirectClass 8 位 78kb
这是 image. The result is the same with other cute animal pictures。
我发现了问题所在 - RMagick 没有任何问题,也没有我预料到的问题。我是 Ruby 的新手,所以我想我学到了关于类型安全的重要一课。我没有让控制台与 Cuba 一起工作,所以我一直在通过将它们作为对 window 的响应来查看这些值。响应体中的值都是字符串,这在数学上显然是不可预测的。从这里带回家的东西:
a) 从现在开始不再假设类型——检查以确保。
b) 我需要让我的控制台正常工作 - 没有替代品,真的。
我正在编写一个图像裁剪器,我将一些裁剪区域尺寸传递给 post 请求,从请求正文中指定的 URL 下载图像,然后使用 RMagick 裁剪每个规格的图像。由于我需要根据图像调整裁剪区域,因此我需要图像的高度和宽度,但是当我尝试访问它们时,它们都是 0.
require "open-uri"
require "RMagick"
img = Magick::Image.from_blob(open(params['image_url']).read).first
问题出在这里 - 这两个值对于任何图像都是零 URL。
width = img.columns
height = img.rows
这里我尝试根据post请求中传入的指定参数裁剪图片,然后写入文件
img.crop!(params['image_x'].to_f * width, params['image_y'].to_f * height, params['image_width'].to_f * width, params['image_height'].to_f * height, true)
img.write image_name
其他一切正常 - 如果我检查图像,我得到这个:
JPEG 990x743 990x743+0+0 DirectClass 8 位 78kb
这是 image. The result is the same with other cute animal pictures。
我发现了问题所在 - RMagick 没有任何问题,也没有我预料到的问题。我是 Ruby 的新手,所以我想我学到了关于类型安全的重要一课。我没有让控制台与 Cuba 一起工作,所以我一直在通过将它们作为对 window 的响应来查看这些值。响应体中的值都是字符串,这在数学上显然是不可预测的。从这里带回家的东西: a) 从现在开始不再假设类型——检查以确保。 b) 我需要让我的控制台正常工作 - 没有替代品,真的。