Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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的图像处理宝石需要的不仅仅是宝石?_Ruby_Image Processing - Fatal编程技术网

为什么大多数用于ruby的图像处理宝石需要的不仅仅是宝石?

为什么大多数用于ruby的图像处理宝石需要的不仅仅是宝石?,ruby,image-processing,Ruby,Image Processing,我是Ruby图像处理新手,所以我想我应该从简单的事情开始,调整一堆照片的大小来制作缩略图。我找到了几种可能的解决方案,包括Rmagick和Ruby VIP。我知道还有更多,但我的问题是,为什么这些工具需要额外安装才能工作?(RMagick gem需要ImageMagick程序等)对于您的RMagick和ImageMagick示例,每一个都侧重于单独的职责。首先,ImageMagick是一个(庞大的)图像处理功能库。调整大小只是一小部分。我想你已经查过了,看到了它能做的一切。其次,RMagick是

我是Ruby图像处理新手,所以我想我应该从简单的事情开始,调整一堆照片的大小来制作缩略图。我找到了几种可能的解决方案,包括Rmagick和Ruby VIP。我知道还有更多,但我的问题是,为什么这些工具需要额外安装才能工作?(RMagick gem需要ImageMagick程序等)

对于您的RMagick和ImageMagick示例,每一个都侧重于单独的职责。首先,ImageMagick是一个(庞大的)图像处理功能库。调整大小只是一小部分。我想你已经查过了,看到了它能做的一切。其次,RMagick是一个特定于Ruby的前端,用于简化专门为Ruby程序员使用ImageMagick的过程。其他语言将有其他类似的库

他们为什么分开?图像处理需要大量的专门代码,这些代码需要尽可能高效地处理(速度、内存大小等)。这样的库往往是用C或各种语言编写的。虽然安装ImageMagick并为其编写自己的Ruby前端并不困难,但大多数人并不想这么做。相反,他们希望其他人已经这样做了(RMagick),他们只是利用了这一点

在我看来,由于大多数项目很少使用ImageMagick,我更喜欢为我实际使用的ImageMagick命令编写自己的前端,并使用专用于我最常使用的流程的API。我不建议每个人都这样做,但这是可以做到的

许多宝石都将专注于一个专注的目标,即解决他们所看到的拼图中某个特定缺失的部分。如果有人已经编写了一个经过良好测试的库X,而其他人已经编写了Z,那么如果您需要Y以某种方式将它们粘合在一起,您可能会使用X,使用Z,然后只编写Y部分。如果您认为Y可能对其他人有用,您可以将Y作为宝石发布

另一个人来了,想要Y,发现他也需要X和Z。正常。

当你说“图像大小调整”时,你指的是什么类型的图像?吉布斯?JPEG?PNG?PDF?BMP?所有这些都是不同类型的图像,需要不同的代码来调整它们的大小。您想使用什么算法来调整大小?ImageMagick可以使用几十种不同的算法来调整图像大小,具体取决于图像的类型。例如,蓝图与照片非常不同。您希望优化什么,速度,图像质量,文件大小?你是让你的形象变大还是变小?这很重要


你说你想从“简单的事情”开始,但事实并非如此。图像处理是一个非常困难的问题。ImageMagick在Linux之前就已经存在了(请查看),并且非常非常擅长它的功能。是的,它有很多依赖项,很难安装。图像处理是为成年人准备的。如果水太深,不要跳进去。

因为gems(ruby代码)利用或“包装”现有的本地(如C或C++)可执行库。在这些方面已经投入了大量的工作,而且C/C++在图像处理所需的位旋转方面比Ruby好/快得多,因此库/程序套件被重用,这会产生使它们相互依赖的副作用。太棒了,谢谢。关于我应该使用什么gem来调整图像大小,或者我应该只使用ImageMagick,你有什么建议吗?…如果可能的话,我希望避免安装依赖项。我已经使用IM很多年了(10+?),甚至没有寻找其他东西。没问题,谢谢你的帮助!