Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 在Cuba上使用RMagick会不断返回0作为图像宽度和高度_Ruby_Image_Rmagick - Fatal编程技术网

Ruby 在Cuba上使用RMagick会不断返回0作为图像宽度和高度

Ruby 在Cuba上使用RMagick会不断返回0作为图像宽度和高度,ruby,image,rmagick,Ruby,Image,Rmagick,我正在编写一个图像裁剪器,其中我将一些裁剪区域尺寸传递给post请求,从请求正文中指定的URL下载一个图像,然后使用RMagick按照规范裁剪图像。因为我需要根据图像调整裁剪区域,所以我需要图像的高度和宽度,但是当我尝试访问它们时,它们都是0 require "open-uri" require "RMagick" img = Magick::Image.from_blob(open(params['image_url']).read).first 问题就在这里——对于任何图像URL,这两个

我正在编写一个图像裁剪器,其中我将一些裁剪区域尺寸传递给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


这是我的建议。结果与之相同。

我发现了问题所在——这与RMagick无关,也与我的预期无关。我是Ruby新手,所以我想我学到了关于类型安全的重要一课。我没有让console与Cuba一起工作,所以我一直在通过将它们作为响应呈现到窗口来查看这些值。响应体中的值都是字符串,它们显然在数学中起着不可预测的作用。从这里带回家的东西: a从现在起不再假设类型-检查以确保。
b我需要让我的控制台正常工作-真的没有替代品。

我不会说Ruby,但在调用from_blob函数后,你可以检查一些返回值。结果发现这是个问题,因为我也不会说Ruby。我对打字有问题。