Rmagick调整大小和展平图像错误

发布于 2024-12-06 09:47:47 字数 786 浏览 1 评论 0原文

我正在尝试使用 Rmagick 组合两个图像。

  1. 可以使用 Jquery-UI 调整顶部图像的大小并拖动。我使用 Jquery 代码调整大小后获得图像的大小,如下所示:

     ui.size["height"] 和 ui.size["width"]
    
  2. 我使用 Ajax 将此数据发送到 Rails 服务器。

  3. 下一步我使用 Rmagick resize_to_fit 调整图像大小,然后使用 flatten_image 组合两个图像,如下所示:

    images=ImageList.new(img1, img2)
    images[1]=images[1].resize_to_fit!(高度,宽度)
    images[1].page=Rectangle.new(高度, 宽度, x_coord+偏移量, y_coord-offset1)
    com_img=images.flatten_images
    com_img.write(tmpfile.path)
    

我的问题是调整图像大小似乎无法正常工作。我总是得到比我想要的更小的图像(通过调整图像大小测试不同的高度和宽度)。图像的左上角位置正确(意味着页面命令正常工作)。我检查了我的 Jquery UI 代码和 ajax 及其发送的正确大小信息。不知何故,Rmagick resize 或 flatten_image 未正确处理信息。

有人可以指出这里可能出了什么问题吗?

谢谢!

PS:偏移量考虑了第一张图像相对于页面左上角的位置。

I am trying to use Rmagick to combine two images.

  1. The image on top can be resized and dragged using Jquery-UI. I get size of the image after resize using Jquery code such as follows:

      ui.size["height"] and ui.size["width"]
    
  2. I send this data using Ajax to Rails server.

  3. The next step I resize the image using Rmagick resize_to_fit and then use flatten_image to combine the two images as follows:

    images=ImageList.new(img1, img2)
    images[1]=images[1].resize_to_fit!(height, width)
    images[1].page=Rectangle.new(height, width, x_coord+offset, y_coord-offset1)
    com_img=images.flatten_images
    com_img.write(tmpfile.path)
    

My problem is that the resize image does not seem to work correctly. I am always getting an image smaller than what I want (for different heights and widths tested by resizing image). The image's left top corner is correctly placed (meaning page command is working correctly). I checked my Jquery UI code and ajax and its sending the correct size information. Somehow the information is not being processed correctly by Rmagick resize or flatten_image.

Can someone provide pointers what could be wrong here?

Thanks!

PS: Offsets account for the first image's position with respect to page top-left corner.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

淡淡的优雅 2024-12-13 09:47:47

我找到了 Rmagick 需要图像调整大小以适合正方形的问题的解决方案。因此,当两个尺寸相同并且是高度或宽度中较大的一个时, resize_to_fit 函数可以正常工作。

所以我更改了代码以执行以下操作

        if height > width
        images[1]=images[1].resize_to_fit!(height, height)
        else
        images[1]=images[1].resize_to_fit!(width, width)
        end 

I found the solution to the problem Rmagick requires the images when they are resized that they should fit into a square. So the resize_to_fit function works correctly when both dimensions are the same and are the larger one among height or width.

So I changed the code to do the following

        if height > width
        images[1]=images[1].resize_to_fit!(height, height)
        else
        images[1]=images[1].resize_to_fit!(width, width)
        end 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文