首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ImageMagick:按BGR顺序写入像素

ImageMagick:按BGR顺序写入像素
EN

Stack Overflow用户
提问于 2011-08-11 20:25:00
回答 4查看 4.4K关注 0票数 4

我希望将(许多) JPEG图像转换为Sun Raster格式(例如,请参阅here ),因为我的程序只能使用这种格式。

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

我已经找到了一个trick来交换颜色平面,但由于文件的样式写为RGB,我得到了奇特的颜色。

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

EN

回答 4

Stack Overflow用户

发布于 2017-08-17 00:23:27

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

代码语言:javascript
复制
convert input.png -color-matrix '0 0 1
                                 0 1 0
                                 1 0 0' output.png

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

票数 8
EN

Stack Overflow用户

发布于 2017-08-17 00:38:11

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

代码语言:javascript
复制
convert logo.png -separate +channel \
-swap 0,2 -combine -colorspace sRGB logo_bgr.png

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

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

票数 5
EN

Stack Overflow用户

发布于 2011-08-19 15:48:14

我有一个想法,如何在RGB图像中交换红色和蓝色:

代码语言:javascript
复制
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

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7025788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档