【问题标题】:Error using R magick package使用 R magick 包时出错
【发布时间】:2017-07-26 23:05:28
【问题描述】:

我正在尝试使用 R 中的 magick 包以 png 格式保存 jpeg 图片,但遇到了错误。

以下是我使用此代码时遇到的错误:

library(magick)

testPic <- "https://upload.wikimedia.org/wikipedia/commons/thumb/4/42/President_Roosevelt_-_Pach_Bros.tif/lossy-page1-165px-President_Roosevelt_-_Pach_Bros.tif.jpg"

image <- image_read(testPic)
image_info(image)
image_convert(image, format = "png", depth = NULL)
Error in magick_image_write(image, format, quality) : 
  Magick: profile 'icc': 'RGB ': RGB color space not permitted on grayscale PNG `' @ warning/png.c/MagickPNGWarningHandler/1656

【问题讨论】:

  • 那只是警告,不是错误,应该不会影响处理。您仍然应该获得输出图像。 PNG 不喜欢将 sRGB 颜色配置文件添加到灰度图像中。
  • 这是一个错误,没有输出 png 图片
  • 从命令行对我来说工作正常:convert https://upload.wikimedia.org/wikipedia/commons/thumb/4/42/President_Roosevelt_-_Pach_Bros.tif/lossy-page1-165px-President_Roosevelt_-_Pach_Bros.tif.jpg tmp.png。转换:配置文件'icc':'RGB':灰度PNG`tmp.png@warning/png.c/MagickPNGWarningHandler/1665上不允许RGB色彩空间。我只收到警告并创建文件。因此,也许您的 R 将警告误解为错误。也可能是 ImageMagick 或 libpng 的版本问题。你的每个版本是什么?我正在使用 IM 6.9.9.37 和 libpng 1.6.34
  • 当我加载magick时,有一条消息说'Linking to ImageMagick 6.9.9.14'没有关于libpng的信息。我将此报告为错误github.com/ropensci/magick/issues/116
  • 您可以使用convert -list format 来检查libpng 的版本,然后查看PNG 的行。

标签: r image-processing imagemagick imagemagick-convert


【解决方案1】:

这是bug in imagemagick。解决方法是将strip = TRUE添加到image_read()

library(magick)

testPic <- "https://upload.wikimedia.org/wikipedia/commons/thumb/4/42/President_Roosevelt_-_Pach_Bros.tif/lossy-page1-165px-President_Roosevelt_-_Pach_Bros.tif.jpg"

image <- image_read(testPic, strip = TRUE)
image_info(image)
image_convert(image, format = "png", depth = NULL)

我会尝试再次 ping 上游来解决这个问题。

【讨论】:

  • 那很好,教程中的第一个命令失败有点令人沮丧。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-10
  • 2021-02-15
  • 2012-06-12
  • 2017-06-10
  • 2016-06-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多