防止 ImageMagick 转换为灰度

2023-11-23

我在 Windows 上使用 ImageMagick-6.9.1 调整 PNG 文件的大小,然后再使用其他工具处理它。源文件是 RGBA,但图像数据是灰度(所有像素的 R、G 和 B 值相同)。看来 ImageMagick 正在检测到这一点,并将输出转换为灰度,即使我像这样指定格式和色彩空间:

convert.exe src.png -format PNG32 -colorspace sRGB -background transparent -resize 830x540 out.png

我已经在几个不同的应用程序(包括 Photoshop)中验证了生成的输出格式为 8 位灰度。这是一个问题,因为后续处理步骤无法处理灰度格式,并且会崩溃。向源添加色调可以让该过程成功完成,但我们需要能够处理未着色的原件。

即使 ImageMagick 检测到源是灰度图像,如何强制它输出 RGB 格式的图像?

更长的日志:(注意 IHDR 中从 color_type 6 到 color_type 4 的转换)

>.\ImageMagick-6.9.1-2\identify.exe -verbose rgba_src.png 
Image: rgba_src.png
  Format: PNG (Portable Network Graphics)
  Mime type: image/png
  Class: DirectClass
  Geometry: 884x747+0+0
  Resolution: 28.35x28.35
  Print size: 31.1817x26.3492
  Units: PixelsPerCentimeter
  Type: GrayscaleAlpha
  Base type: GrayscaleAlpha
  Endianess: Undefined
  Colorspace: Gray
  Depth: 8-bit
  Channel depth:
    gray: 8-bit
    alpha: 8-bit
  Channel statistics:
    Pixels: 660348
    Gray:
      min: 0 (0)
      max: 255 (1)
      mean: 234.605 (0.920019)
      standard deviation: 56.1418 (0.220164)
      kurtosis: 11.312
      skewness: -3.45486
      entropy: 0.271262
    Alpha:
      min: 0 (0)
      max: 247 (0.968627)
      mean: 23.5875 (0.0924999)
      standard deviation: 53.3361 (0.209161)
      kurtosis: 2.71621
      skewness: -2.02496
      entropy: 0.206267
  Alpha: graya(255,0)   #FFFFFF00
  Rendering intent: Perceptual
  Gamma: 0.454545
  Chromaticity:
    red primary: (0.63999,0.33001)
    green primary: (0.3,0.6)
    blue primary: (0.15,0.05999)
    white point: (0.31269,0.32899)
  Background color: graya(255,1)
  Border color: graya(223,1)
  Matte color: graya(189,1)
  Transparent color: graya(0,0)
  Interlace: None
  Intensity: Undefined
  Compose: Over
  Page geometry: 884x747+0+0
  Dispose: Undefined
  Iterations: 0
  Compression: Zip
  Orientation: Undefined
  Properties:
    date:create: 2015-04-21T11:15:21-07:00
    date:modify: 2015-04-21T11:15:28-07:00
    png:cHRM: chunk was found (see Chromaticity, above)
    png:IHDR.bit-depth-orig: 8
    png:IHDR.bit_depth: 8
    png:IHDR.color-type-orig: 6
    png:IHDR.color_type: 6 (RGBA)
    png:IHDR.interlace_method: 0 (Not interlaced)
    png:IHDR.width,height: 884, 747
    png:pHYs: x_res=2835, y_res=2835, units=1
    png:sRGB: intent=0 (Perceptual Intent)
    signature: b30c82674d8ed7b50afbfd0eb86d37346164378ae92ef305b0ab61325e741f52
  Artifacts:
    filename: rgba_src.png
    verbose: true
  Tainted: False
  Filesize: 207KB
  Number pixels: 660K
  Pixels per second: 34.76MB
  User time: 0.016u
  Elapsed time: 0:01.018
  Version: ImageMagick 6.9.1-2 Q16 x86 2015-04-14 http://www.imagemagick.org

>.\ImageMagick-6.9.1-2\convert.exe rgba_src.png -verbose -format PNG32 -colorspace srgb -background transparent -resize 830x540 out.png 
rgba_src.png=>out.png PNG 884x747=>639x540 639x540+0+0 8-bit sRGB 62.8KB 0.406u0:00.107

>.\ImageMagick-6.9.1-2\identify.exe -verbose out.png 
Image: out.png
  Format: PNG (Portable Network Graphics)
  Mime type: image/png
  Class: DirectClass
  Geometry: 639x540+0+0
  Resolution: 28.35x28.35
  Print size: 22.5397x19.0476
  Units: PixelsPerCentimeter
  Type: GrayscaleAlpha
  Base type: Grayscale
  Endianess: Undefined
  Colorspace: Gray
  Depth: 8-bit
  Channel depth:
    gray: 8-bit
    alpha: 8-bit
  Channel statistics:
    Pixels: 345060
    Gray:
      min: 0 (0)
      max: 255 (1)
      mean: 34.1198 (0.133803)
      standard deviation: 77.4794 (0.303841)
      kurtosis: 1.68768
      skewness: 1.88484
      entropy: 0.220331
    Alpha:
      min: 0 (0)
      max: 237 (0.929412)
      mean: 23.5888 (0.092505)
      standard deviation: 53.2132 (0.208679)
      kurtosis: 2.60073
      skewness: -2.00769
      entropy: 0.208417
  Alpha: graya(0,0)   #00000000
  Rendering intent: Undefined
  Gamma: 0.45455
  Chromaticity:
    red primary: (0.63999,0.33001)
    green primary: (0.3,0.6)
    blue primary: (0.15,0.05999)
    white point: (0.31269,0.32899)
  Background color: graya(0,1)
  Border color: graya(223,1)
  Matte color: graya(189,1)
  Transparent color: graya(0,0)
  Interlace: None
  Intensity: Undefined
  Compose: Over
  Page geometry: 639x540+0+0
  Dispose: Undefined
  Iterations: 0
  Compression: Zip
  Orientation: Undefined
  Properties:
    date:create: 2015-04-21T11:41:45-07:00
    date:modify: 2015-04-21T12:24:05-07:00
    png:bKGD: chunk was found (see Background color, above)
    png:cHRM: chunk was found (see Chromaticity, above)
    png:gAMA: gamma=0.45455 (See Gamma, above)
    png:IHDR.bit-depth-orig: 8
    png:IHDR.bit_depth: 8
    png:IHDR.color-type-orig: 4
    png:IHDR.color_type: 4 (GrayAlpha)
    png:IHDR.interlace_method: 0 (Not interlaced)
    png:IHDR.width,height: 639, 540
    png:pHYs: x_res=2835, y_res=2835, units=1
    png:text: 2 tEXt/zTXt/iTXt chunks were found
    png:tIME: 2015-04-21T11:15:28Z
    signature: 3d4b5050f182dac93631d9119d76324d43f9a659ea035523a8e359b7434bdb5b
  Artifacts:
    filename: out.png
    verbose: true
  Tainted: False
  Filesize: 62.8KB
  Number pixels: 345K
  Pixels per second: 57.51MB
  User time: 0.000u
  Elapsed time: 0:01.006
  Version: ImageMagick 6.9.1-2 Q16 x86 2015-04-14 http://www.imagemagick.org

您可以尝试使用-define强制输出图像类型PNG Color-Type 6像这样:

convert input.png ... -define png:color-type=6 output.png
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

防止 ImageMagick 转换为灰度 的相关文章

  • 将 PDF 转换为 PNG Node.JS

    我正在构建一个 Node js 应用程序来将 PDF 转换为 PNG 并显示在用户页面上 该应用程序将像这样工作 用户上传 PDF 到服务器 服务器将 PDF 页面转换为单独的 PNG 在用户页面上显示 PNG 我发现了一个很棒的软件包 名
  • imagemagick:创建一个 .png 文件,它只是一个实心矩形

    我想创建一个纯色的 png 文件 使用 ImageMagick 一定很容易做到这一点 但我无法找出问题所在 C tmp gt convert size 8x16 stroke black fill black draw rectangle
  • Mac Lion 上架构 x86_64 ImageMagick 的未定义符号

    在 Mac Lion 上 我完成了配置 制作并安装了 ImageMagick 的静态版本 一切顺利 作为配置的结果 我得到了 configuring ImageMagick 6 7 2 4 checking build system typ
  • Fabric js 或 imagick 从图像中删除白色

    我遇到了这种情况 我很难在谷歌上搜索并解释 我们公司在铝上打印照片 我们为客户提供两种选择 第一个选择是将他们的照片打印在铝上 就像 他们把照片给了我们 所以如果照片有白色 背景 图片以白色背景打印 简单的 像那样 第二个选项是我们可以打印
  • 无法循环文件名中带有空格的文件、Windows 批处理文件和图像 magick

    我正在尝试循环一堆文件夹 创建子文件夹 然后循环文件 使用 imagemagick 转换它们并将它们放入新的子文件夹中并重命名 某些文件名称中包含空格并导致错误 我该如何解决此问题 错误信息 convert unable to open i
  • 用于调整图像大小和创建缩略图的 ImageMagick 或 GD 库?

    我一直在使用其他人编写的图像调整大小类来调整图像大小或创建缩略图 这是我一直在使用的类的链接 http www white hat web design co uk articles php image resizing php http
  • 在 OS X 下将 ImageMagick 编译为 64 位?

    我正在尝试安装moddims http code google com p moddims 在 OS X 上 请参阅上一个问题 https stackoverflow com questions 1185106 how do i confi
  • ImageMagick 将白色变为透明背景,同时保持白色对象

    我正在使用 PHP图像魔术师 http php net manual en book imagick php将图像的白色背景变为透明 我将图像 URL 传递给这个 PHP 脚本 它返回图像
  • 将多页 PDF 转换为单个图像

    我必须将多页 PDF 文档转换为 png 图像 我尝试使用 ImageMagick 但无法获得最终结果 convert document pdf document png or convert adjoin document pdf doc
  • 将图像裁剪或遮罩成圆形

    使用 ImageMagick 或 GD 库将图像裁剪或遮罩成圆形形状的最佳方法是什么 请注意 解决方案存在于 其他 问答网站上 但不存在于 StackOverflow 上 这是使用 ImageMagick 的一种方法 无需使用遮罩即可实现此
  • 在 R 中导入 png 文件并转换为动画(.mp4)

    我正在尝试用 R 中的几个 png 文件创建一个简短的动画 我尝试了 packagemagick但只有当我将它们保存为 gif 时它才有效 当我尝试另存为 mp4 时 它将生成一个 mp4 文件 但一旦打开它 只会显示第一张图像 我的代码是
  • Linux 上的 Imagemagick 将 EMF 转换为 PNG

    我尝试在 Red Hat Enterprise Linux Server 5 5 Tikanga 上使用 Imagemagick 将 EMF 格式的图像转换为 PNG 但遇到以下错误 转换 此图像格式 thumbnail emf 没有解码委
  • 黑白 PNG 转 SVG

    我有一个河流 土地掩码来区分土地与河流 湖泊 该文件的大小为 W 43 200x H 21 600 由于 RAM 立即填满 因此无法打开该文件 我已将文件分成 3600 3600 块 它们可以正常打开 然而 我试图在谷歌地图中绘制陆地上的文
  • 消除 ffmpeg 和 image-magic 命令中的慢速因素

    这些命令的基本思想是创建一个比较 比较定义了过去的一张 jpeg 和现在的一张 jpeg 组合起来 例如它们将相互滑动并显示前后图像 e g https media evercam io v1 cameras 1lowe scnoe com
  • 如何使用 JMagick 转换色彩空间?

    如何使用 JMagick API 转换色彩空间 例如 CMYK gt RGB 和 RGB gt CMYK None
  • 使用 PHP 将 SVG 图像转换为 PNG

    我正在开发一个网络项目 该项目涉及动态生成的美国地图 根据一组数据为不同的州着色 这个 SVG 文件为我提供了一张很好的美国空白地图 并且很容易更改每个州的颜色 困难在于 IE 浏览器不支持 SVG 因此为了让我使用 svg 提供的便捷语法
  • 将 PDF 转换为 600dpi 的 TIFF 和 jpg 96 dpi

    我想使用 ImageMagick 从 Python 脚本将 pdf 转换为 600 dpi 的 tiff 和 96 dpi 的 jpg 我使用 imagemagick 命令行完成了这项任务 但我想使用python中的Imagemagick将
  • 如何使用网格分割图像并保留透明度边界框

    我有一些 png 图像 我想将其分成几个部分 例如按网格或大小 但每个部分应具有与原始图像相同的边界框 透明度 Example 将图像分成两部分 原来的 200 89 Output 部分 1 png 200 89 第2部分 png 200
  • ImageMagick - 在不知道图像尺寸的情况下计算透视

    如何获得图像的最大宽度和高度 对其进行一些数学计算 然后将其用于透视变形 我有一堆图像想要应用透视扭曲 唯一的问题是 每个图像的大小不同 此代码适用于我知道尺寸 1440 900 的图像 convert test jpg matte vir
  • 如何执行 ImageMagick 仅将多页 PDF 的第一页转换为 JPEG?

    我如何执行 ImageMagick 的convert如果我想要 JPEG仅从第一页开始多页 PDF 如果您使用的是convert命令行您可以使用以下参数执行它 convert source pdf 0 output jpeg 请注意 Ima

随机推荐

  • Rails 3.1 身份映射问题?

    有谁知道 Rails 3 1 IdentityMap 功能的关键问题导致默认情况下强制禁用该功能 我确信存在一些小具体问题 但是在为已构建的 Rails 3 1 应用程序启用它之前 是否有任何人应该注意的重大问题 来自代码中的注释 Acti
  • python-opencv AttributeError:“模块”对象没有属性“createBackgroundSubtractorGMG”

    我正在尝试遵循以下中给出的教程 https opencv python tutroals readthedocs org en latest py tutorials py video py bg subtraction py bg sub
  • 在 Mac OS 上设置 tkinter 图标

    我正在尝试更改 Mac OS 的 tk 应用程序上显示的图标 上次我检查此代码适用于 Windows 目标是使该解决方案能够跨所有平台工作 root tk Tk app Application master root app master
  • Clion 无法识别我的快速工具链路径

    我正在尝试为 swift 项目配置 clion 但它无法识别 swift 工具链路径 which swift 产生输出 usr bin swift bin swift 所以工具链就在那里 但 clion 只是不认识它 我该如何进行这项工作
  • jQuery 工具提示 onClick?

    我已经找了很长时间了 似乎找不到一个使用以下内容的 jQuery 工具提示插件 onClick 代替hover 使其像切换按钮一样工作 淡入淡出 使用工具提示的想法是 我有一些想要在其中显示内容的链接 虽然普通的工具提示 这可能是我出错的地
  • 如何在 Windows 上安装 pip?

    pip是替代品easy install 但我应该安装pip using easy install在 Windows 上 有没有更好的办法 Python 3 4 和 2 7 9 好消息 Python 3 4 2014 年 3 月发布 和Pyt
  • MySQL 表的主键是否应该公开?

    我有许多描述模型的 MySQL 表 例如 用户 业务 等 这些表的主键是否应该暴露给客户端 我主要是从安全角度来问 但是还有其他我没有想到的考虑因素吗 暴露您的主键 特别是如果它们是可预测的 是一个称为不安全直接对象引用的漏洞 通过使用如下
  • 如何设置 NSDate 上的时间?

    我想用我想要的小时 分钟 秒设置 NSDate 时间 目前我正在使用 NSDate 组件 但它没有给出期望的结果 comps setHour hours comps setMinute 0 comps setSecond 0 NSDate
  • 有人有 SourceForge 的 Xselerator XSL IDE 副本吗? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 我多年来一直使用 Marrowsoft Xselera
  • 使用 python pandas 比较两个 csv 文件

    我有两个 csv 文件 均由两列组成 第一个具有产品 ID 第二个具有序列号 我需要查找第一个 csv 中的所有序列号 并在第二个 csv 上查找匹配项 结果报告将在单独的列中包含匹配的序列号以及每个 csv 中相应的产品 ID 我确实修改
  • ASP.NET MVC 4 C# HttpPostedFileBase,如何存储文件

    Model public partial class Assignment public Assignment this CourseAvailables new HashSet
  • 我可以使用 Boost.Asio 在多线程 I/O 服务上同步读取套接字并设置超时吗?

    我有一个使用 Boost Asio 进行 TCP 和 UDP 套接字通信的应用程序 我知道 Asio 中的 A 代表异步 因此该库致力于鼓励您尽可能使用异步 I O 我有一些情况 同步套接字读取更可取 但与此同时 我想为所述接收调用设置超时
  • created_at 字段有时会变成 nil

    I think created at总是设置为ActiveRecord创建记录的时间 但我发现有些记录是用null创建的created at 有什么条件可以导致这种情况吗 这些列created at updated at created o
  • 使用 google-rfc-2445 (iCalendar) 时,某些情况下会返回开始日期

    我运行了很多 RRULE 只是为了测试性能谷歌 rfc 2445 Java 实现IETF RFC 2445 日历 我发现在某些情况下我在方法的返回列表中得到了开始日期 测试非常简单 private static void runGoogle
  • ReactJS中如何处理多选表单

    我尝试处理一个多种表单选择选项 在 ReactJS 中 我试图激发 javascript 经典代码的灵感来处理这个问题 但我失败了 我的代码只是不向我发送所选的值 怎么处理呢 这是我的代码 class ChooseYourCharacter
  • 如何在 ExtJS 4 中实现流程布局?

    我想使用一种布局 其中组件像 hbox 一样水平添加 但在添加时 如果组件超出容器的边界 则会移动到下一行 这与swing和flex中的FlowLayout类似 我在 ExtJS 4 0 中找不到任何可以实现此目的的布局 所以我想知道我将如
  • 如何使两个函数参数隐式

    假设我们有一个以函数作为参数的对象apply method object Wrapper def apply block TypeA gt String TypeA a block a TypeA是应用程序的域类型 现在 当我定义内联块时
  • JavaFX ScrollPane 以编程方式移动视口 - 使内容居中

    我可以使用 setVvalue double 和 setHvalue double 方法在 JavaFX ScrollPane 中移动视口 我正在努力做的是根据其位置将特定节点置于滚动窗格内容的中心 我尝试过 localToScene 和b
  • 如果未定义索引操作返回视图还是副本,那么 pandas 中的视图有何意义?

    我已经从 R 切换到 pandas 当我做类似的事情时 我经常得到SettingWithCopyWarnings df a pd DataFrame col1 1 2 3 4 Filtering step which may or may
  • 防止 ImageMagick 转换为灰度

    我在 Windows 上使用 ImageMagick 6 9 1 调整 PNG 文件的大小 然后再使用其他工具处理它 源文件是 RGBA 但图像数据是灰度 所有像素的 R G 和 B 值相同 看来 ImageMagick 正在检测到这一点