2017-07-26 180 views
0

我想用R中的magick软件包以png格式保存一个jpeg图片,并且我正面临错误。使用R magick软件包的错误

下面是我得到使用此代码错误:

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 
+1

这只是一个警告,而不是错误,它不应该影响处理。你仍然应该得到一个输出图像。 PNG不喜欢将sRGB颜色配置文件添加到灰度图像中。 – fmw42

+0

这是一个错误,并没有输出PNG图像 – user3357059

+0

它从我的命令行工作正常,如:转换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'。 convert:profile'icc':'RGB':不允许在灰度PNG上使用RGB颜色空间tmp.png @ warning/png.c/MagickPNGWarningHandler/1665。我只收到警告并创建了文件。因此,也许你的R会将警告误解为错误。也可能是ImageMagick或libpng的版本问题。每个版本是什么?我正在使用即时通讯6.9.9.37&libpng 1.6.34 – fmw42

回答

1

这是一个bug in imagemagick。解决方法是添加strip = TRUEimage_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解决这个问题。