我正在尝试使用grImport包导入矢量图形,但是遇到了一个我无法解决的问题(尽管我花了一整天的时间在互联网上搜索,包括这里!)
我已经安装了Ghostscript,并将我的.png映像转换为一个.ps文件(并通过转换.jpg和.pdf映像来检查这是否是失败的原因--但结果是相同的)。
下面是我的.png文件的一个示例:简单交叉png
以及转换.ps文件后的一个示例:简单交叉ps
当我运行时,没有收到错误消息:
PostScriptTrace("cross.ps")
img <- readPicture("cross.ps.xml")但是,如果我尝试在一个情节中使用这张图片,就没有绘制的图像。
跟踪此结果后,我发现PlotScriptTrace生成的PlotScriptTrace文件不包含任何路径:
str(img)
>Formal class 'Picture' [package "grImport"] with 2 slots
..@ paths : Named list()
..@ summary:Formal class 'PictureSummary' [package "grImport"] with 3 slots
.. .. ..@ numPaths: num 0
.. .. ..@ xscale : Named num [1:2] 99999 -99999
.. .. .. ..- attr(*, "names")= chr [1:2] "xmin" "xmax"
.. .. ..@ yscale : Named num [1:2] 99999 -99999
.. .. .. ..- attr(*, "names")= chr [1:2] "ymin" "ymax"因此,我认为在调用PostScriptTrace()或readPicture()时都存在问题,但我不知道如何从这里开始。
这是我的sessionInfo(),以防这有帮助:
R version 3.3.0 (2016-05-03)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.11.6 (El Capitan)
locale:
[1] en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8
attached base packages:
[1] grid stats graphics grDevices utils datasets methods
[8] base
other attached packages:
[1] grImport_0.9-0 XML_3.98-1.4 请注意,我的问题与:R:将矢量图形导入绘图-无法使grImport工作完全相同,但是对前面这个问题的回答并没有帮助我--它指出,XML文件没有被正确编译,我已经知道了。
有人能指出我哪里出了问题吗?
发布于 2016-10-15 08:26:59
移到一个答案,太大了,评论不了。
我正在尝试导入.ps文件,我认为它是一个向量图形?
这是一个误解,PostScript程序可以同时包含向量和位图数据。因此,显然,如果您从位图数据(PNG、JPEG、TIFF等)开始,那么PostScript等效程序将只包含相同的(模块化压缩)位图数据。
在您发布的PostScript程序内部,我们可以看到Ghostscript的ps2write设备上通常的全面PostScript头,后面跟着实际的程序:
%%EndPageSetup
5 0 obj
<</Length 156041>>stream
q 0.12 0 0 0.12 0 0 cm
q 3950 0 0 5341.67 508.333 833.333 cm
BI
/CS/RGB
/W 1422
/H 1923
/BPC 8
/F[/A85
/LZW]
ID
J3Vsg3$]7K#D>EP:q1$o*=mro@So+\<\5,H7Uo<*jE<[.O@Wn[3@'nb-^757;Rp>H>q_R=AlC^c
...
...
=Z;P44-S>^PSliQ=\"^E99e+*Po3Mc=]UKU!W~>
EI Q
Q
endstream
endobj
pagesave restore
%%PageTrailer
%%Trailer
end
%%EOFID函数(在prolog中定义)将下列内联数据绘制为位图图像。然后是位图数据,程序发出页面,清理并退出。
所以根本就没有矢量数据,这并不奇怪,因为源数据不是向量的。
我对R一无所知,但从我看到的问题来看,我假设它不能处理位图数据,这就是为什么得到空白输出的原因。
https://stackoverflow.com/questions/40022764
复制相似问题