【问题标题】:ImageMagick: write pixels in BGR orderImageMagick:按 BGR 顺序写入像素
【发布时间】:2018-07-15 02:14:57
【问题描述】:

我想将(很多)JPEG 图像转换为 Sun Raster 格式(例如参见 here),因为我的程序只能使用这种格式。

问题是我的程序只允许旧类型的图像 或标准,即按 BGR 顺序写入像素。 (我应该改变它,但没有时间)。 默认情况下,ImageMagick 会生成 RGB 格式的文件。

我找到了一个 trick 来交换颜色平面,但由于文件的样式写为 RGB,所以我得到了花哨的颜色。

这可能是传递给 ImageMagick 的一个简单选项,但我没有找到。 你有什么想法吗?

【问题讨论】:

    标签: imagemagick


    【解决方案1】:

    另一种交换颜色的方法是使用-color-matrix 选项。例如,将 RGB 转换为 BGR:

    convert input.png -color-matrix '0 0 1
                                     0 1 0
                                     1 0 0' output.png
    

    参考:http://www.imagemagick.org/Usage/color_mods/

    【讨论】:

      【解决方案2】:

      在 Imagemagick 6 中,您可以使用 -swap 命令轻松完成此操作。让我们交换徽标图像中的红色和蓝色通道。

      convert logo.png -separate +channel \
      -swap 0,2 -combine -colorspace sRGB logo_bgr.png
      

      对于非常旧版本的 Imagemagick,请使用 RGB 而不是 sRGB。

      在 Imagemagick 7 中,使用 magick 而不是转换。

      【讨论】:

        【解决方案3】:

        我知道如何在 RGB 图像中交换红色和蓝色:

        convert ( image_RGB.bmp -channel B -separate ) \
            ( image_RGB.bmp -channel G -separate ) \
            ( image_RGB.bmp -channel R -separate ) -channel RGB -combine image_BGR.bmp
        

        您只需从原始图像中剪切通道并以相反的顺序写入它们。

        【讨论】:

        • 谢谢。我已经尝试过您的示例,但它不起作用。你确定语法吗?
        • 无论如何,这听起来像this page,即你交换频道。但在这种情况下,颜色会有所不同。在我看来,这只是图像格式的问题。
        • 语法:尝试删除“\”符号和断线,我添加它是为了便于阅读。是的,频道只是交换了,当您在标准查看器中查看转换后的图像时,颜色看起来很漂亮。但是我认为您的程序可以正确读取和查看它,那么您为什么还需要其他东西呢?
        • (对不起,我离开了几天)我的程序测试了标题中的类型字段。如果该值与旧或标准不同,它将停止。我可以解决这个问题,但那将是一个糟糕的 hack。
        • BTW nautilus thumbnailer(在 GNOME 桌面下)似乎无法显示使用 image magick 转换的 RGB 图像。
        【解决方案4】:

        我会认为在 Imagemagick 中

        convert image.jpg image.sun
        

        convert image.jpg SUN:image.sun
        

        如果这是太阳光栅格式的标准,将转换为 BGR 格式。请参阅 imagemagick.org/script/formats.php。

        你试过了吗?

        如果这不起作用,则使用我的 -swap 命令,但写入 .sun 文件格式而不是我上面使用的 png。那是

        convert logo.png -separate +channel -swap 0,2 -combine -colorspace sRGB logo_bgr.sun
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-10-18
          • 1970-01-01
          • 1970-01-01
          • 2018-01-07
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多