ImageMagick - 智能的灰度空间(GRAYColorspace)让人窒息
今天在处理一张 gray.jpg 图片时,发现生成的图片色彩空间是: GRAYColorspace
可我在代码中明明设置了:
MagickWand * mw = NewMagickWand ();
MagickReadImage (mw, "gray.jpg"); MagickSetImageType (mw, TrueColorType);
MagickSetImageColorspace (mw, sRGBColorspace); MagickSetImageFormat(mw, "JPEG");
MagickWriteImage (mw, "gray-rgb.jpg")
为什么生成的图片(gray-rgb.jpg),色彩空间还是:GRAYColorspace
如果使用 convert.exe 就可以:
convert gray.jpg -type truecolor gray-rgb.jpg
生成的 gray-rgb.jpg ,色彩空间:sRGBColorspace
经过半天的google,基本上找到原因:
ImageMagick 内部编码器会根据当前的图片颜色数量,智能的优化,如果符合 GRAYColorspace,就自动设置为 GRAYColorspace,就算在代码中强制设置:
MagickSetImageType (mw, TrueColorType);
MagickSetImageColorspace (mw, sRGBColorspace);
都没有用!!!
后面又找到这个:http://www.imagemagick.org/script/command-line-options.php#define
其中提到通过下面的设置,来解决这个 ImageMagick 智能的选择 GRAYColorspace 的问题 :
MagickSetOption(magick_wand, "colorspace:auto-grayscale", "off");
或
MagickSetImageProperty (magick_wand, "colorspace:auto-grayscale", "off");
可我尝试了一下,发现没效果。
可能是我用的 ImageMagick 版本有点低, 6.8.9版。
网上提到的是 6.9.2+ 版可能才支持这个功能。
我去,这就难办了,因为 ImageMagick 如果升级到最新版,有很多地方的代码需要修改,实在不想改动。
ImageMagick 这个处理方式有点让人接受不了, 开发者对此可操作的空间都没有了。
ImageMagick - 智能的灰度空间(GRAYColorspace)让人窒息的更多相关文章
- ImageMagick使用小节
ImageMagick是一个强大的开源图形处理软件,国内应该很少人用,至今仍在更新,放出全版本下载链接 http://ftp.icm.edu.pl/packages/ImageMagick/binar ...
- [转]AI+RPA 融合更智能
本文转自:https://www.jianshu.com/p/cf25b3dfc0f0 前面已经分析过多次RPA的本质,可以参考 [脱下外衣],看看RPA机器人到底是什么? 哪些AI相关应用技 ...
- 灰度共生矩阵GLCM分析
纹理分析是对图像灰度(浓淡)空间分布模式的提取和分析.纹理分析在遥感图像.X射线照片.细胞图像判读和处理方面有广泛的应用.关于纹理,还没有一个统一的数学模型.它起源于表征纺织品表面性质的纹理概念,可以 ...
- 谁才是智能家居的未来?视声M+O融合方案给出答案
有些智能家居,你不能说它不智能. 但在现实生活中,常常帅不过一秒. 就比如,当你经历了一天的疲惫后回到家,发现玄关的智能开关突然没反应,家里的灯怎么都打不开.这种时候你得明白,你的智能开关面板很有可能 ...
- 【读书笔记《Bootstrap 实战》】2.作品展示站点
假设我们已经想好了要给自己的作品弄一个在线站点.一如既往,时间紧迫.我们需要快一点,但作品展示效果又必须专业.当然,站点还得是响应式的,能够在各种设备上正常浏览,因为这是我们向目标客户推销时的卖点.这 ...
- 【Bootstrap】2.作品展示站点
假设我们已经想好了要给自己的作品弄一个在线站点.一如既往,时间紧迫.我们需要快一点,但作品展示效果又必须专业.当然,站点还得是响应式的,能够在各种设备上正常浏览,因为这是我们向目标客户推销时的卖点.这 ...
- opencv笔记4:模板运算和常见滤波操作
time:2015年10月04日 星期日 00时00分27秒 # opencv笔记4:模板运算和常见滤波操作 这一篇主要是学习模板运算,了解各种模板运算的运算过程和分类,理论方面主要参考<图像工 ...
- isp和3a的联系与区别是什么?
Willis Zen上善若水 2 人赞同 你说的这个问题,不是很多人能够回答的,我也只能把我知道的告诉你.isp 是image signal processing,用于图像处理,比如gamma调整,d ...
- [转载+原创]Emgu CV on C# (四) —— Emgu CV on 全局固定阈值二值化
重点介绍了全局二值化原理及数学实现,并利用emgucv方法编程实现. 一.理论概述(转载,如果懂图像处理,可以略过,仅用作科普,或者写文章凑字数) 1.概述 图像二值化是图像处理中的一项基本技术,也 ...
随机推荐
- 安装splash
参考: https://blog.csdn.net/qq_41020281/article/details/82599075
- python爬虫之Beautiful Soup的基本使用
1.简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: Beautiful Soup提供一些简单的.python式的函数用来处理导航.搜索 ...
- Service Account和RBAC授权
一.介绍 Service Account概念的引入是基于这样的使用场景:运行在pod里的进程需要调用Kubernetes API以及非Kubernetes API的其它服务.Service Accou ...
- ES 6 系列 - Module 的语法
es 6 大幅度优化了模块化编程的规范. 写在前面:在 es6 之前,说起 js 的模块化,一般都避不开 CommonJs 和 AMD 两种方案.这两种方案,前者应用于服务器,后者应用于浏览器.而 e ...
- SQL to JSON Data Modeling with Hackolade
Review: SQL to JSON data modeling First, let’s review, the main way to represent relations in a rela ...
- 使用js主函数的原因是等文档加载完了才给里面的元素添加东西 如果不使用主函数则文档加载时候无法找到元素则不能成功给元素添加事件
使用js主函数的原因是等文档加载完了才给里面的元素添加东西 如果不使用主函数则文档加载时候无法找到元素则不能成功给元素添加事件
- HTC Vive 基础入门 基于Unity3D引擎
任务2: 01-概述 07:08 任务3: 02-HTC Vive设备的安装 08:33 任务4: 03-下载Steam与SteamVR 03:05 任务5: 04-使用Steam VR 调试设备 1 ...
- Mail.Ru Cup 2018 Round 3
A:签到 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> # ...
- 第十九天 标准目录与time 模块
今日内容 1.目录规范 ***** (1)文件夹的规范写法 bin 可执行文件 conf 配置文件 core 主要业务逻辑 db 数据文件 lib 库 (公共代码 第三方模块) log 日志文件 ...
- HDU3966-Aragorn's Story-树链剖分-点权
很模板的树链剖分题 注意什么时候用线段树上的标号,什么时候用点的标号. #pragma comment(linker, "/STACK:102400000,102400000") ...