R语言【grDevices】——bmp、jpeg、png、tiff图形设备

Package grDevices version 4.2.0


Description

图形设备的BMP, JPEG, PNG和TIFF格式的位图文件。


Usage

R 复制代码
bmp(filename = "Rplot%03d.bmp",
    width = 480, height = 480, units = "px", pointsize = 12,
    bg = "white", res = NA, family = "", restoreConsole = TRUE,
    type = c("windows", "cairo"), antialias,
    symbolfamily="default")

jpeg(filename = "Rplot%03d.jpg",
     width = 480, height = 480, units = "px", pointsize = 12,
     quality = 75,
     bg = "white", res = NA, family = "", restoreConsole = TRUE,
     type = c("windows", "cairo"), antialias,
     symbolfamily="default")

png(filename = "Rplot%03d.png",
    width = 480, height = 480, units = "px", pointsize = 12,
    bg = "white", res = NA, family = "", restoreConsole = TRUE,
    type = c("windows", "cairo", "cairo-png"), antialias,
    symbolfamily="default")

tiff(filename = "Rplot%03d.tif",
     width = 480, height = 480, units = "px", pointsize = 12,
     compression = c("none", "rle", "lzw", "jpeg", "zip", "lzw+p", "zip+p"),
     bg = "white", res = NA, family = "", restoreConsole = TRUE,
     type = c("windows", "cairo"), antialias,
     symbolfamily="default")

Arguments

参数【filename】:输出文件的路径,最多511个字符。如果字符串中包含C整数格式(如默认情况),则替换页码,并执行波浪展开(参见path.expand)。(结果长度必须小于600个字符。详情见postscrript。)

参数【width】:设备的宽度。

参数【height】:设备的高度。

参数【units】:表示高度和宽度的单位。可以是px(像素,默认值),in(英寸),cm或mm。

参数【pointsize】:绘制文本的默认点大小,以分辨率ppi解释为大点(1/72英寸)。

参数【bg】:初始背景颜色:可以通过设置par("bg")来覆盖。

参数【quality】:JPEG图像的"质量",以百分比表示。较小的值将提供更多的压缩,但也会使图像更差。

参数【compression】:要使用的压缩类型。

参数【res】:如果是正整数,则ppi中的标称分辨率将被记录在位图文件中。也用于默认值以外的单位。如果未指定,则取72ppi来设置文本大小和行宽。

参数【family】:长度为一个字符的向量,指定默认字体族。默认情况下,在Windows GDI版本中使用字体数字,在图形版本中使用"sans"。

参数【restroeConsole】:请参阅"详细信息"部分。仅适用于type == "windows"。

参数【type】:绘图应该使用Windows GDI还是cairo ?

参数【antialias】:长度-一个字符向量。对于允许的值及其对type = "windows"字体的影响,请参阅windows:对于该类型,如果缺少参数,则默认值取自windows.options()$bitmap.aa.win。有关type = "cairo"允许的值及其效果(对字体和行,但不包括填充),请参阅svg。

参数【symbolfamily】:仅用于绘图:一个长度为1的字符串,指定用作"符号"字体的字体族(例如,用于绘图输出)。默认值为"default",这意味着R将根据图形设备的能力选择默认的"符号"字体。


Details

PNG和JPEG格式的图可以很容易地转换为许多其他位图格式,并且都可以在现代web浏览器中显示。PNG格式是无损的,最适合线条图和彩色块。JPEG格式是有损的,但可能对图像绘图有用。BMP格式是Windows上的标准格式,并且被其他地方的大多数观众所支持。TIFF是一种元格式:由TIFF编写的默认格式是无损的,并且存储未压缩的RGB值------这样的文件被广泛接受,这是它们相对于PNG的主要优点。

Windows GDI对位图的大小施加了限制:这些限制在SDK中没有记录,可能取决于Windows的版本。看来宽度和高度都是有限的。此外,总像素数也有限制,这取决于图形硬件。

缺省情况下,文件中没有分辨率记录(BMP除外)。当没有记录时,观众通常会假设名义分辨率为72 ppi。由于PNG文件的分辨率是以像素/米为单位记录的,因此报告的ppi值将略有变化。

对于使用英寸为单位的图形参数,假设为res ppi(默认72)。

如果页面上的颜色少于256种,bmp和png都将使用调色板,否则记录一个24位RGB文件。对于png设备,type = "cairo"在驱动程序中输出png,因此与"windows"类型兼容。type = "cairo-png"使用cairographics的PNG后端,它永远不会使用调色板,通常会创建一个更大的32位ARGB文件-对于半透明颜色的专业使用可能会更好。

png(type = "windows")在16位(' High Color ')或更好的屏幕上支持透明背景:使用bg = "transparent"。它还支持线条、填充和文本的半透明颜色。然而,由于所使用的图形工具包中只有部分支持透明度:如果有一个透明的背景,半透明的颜色被涂在稍微灰白色的背景上,因此像素是不透明的。

并非所有PNG查看器都能正确地呈现透明文件。

tiff压缩类型"lzw+p"和"zip+p"使用水平差分("差分预测器",tiff规范第14节)与压缩方法相结合,这对连续色调图像,特别是彩色图像是有效的。

未知分辨率的BMP文件记录为72ppi。


Value

打开一个绘图装置:没有任何东西返回给R解释器。


Warnings

请注意,默认情况下,宽度和高度的单位是像素,而不是英寸。如果两者都小于20,则会发出警告。

如果您在其中一个设备上绘制了多个页面,并且没有在文件中包含类似%d的序列号,则该文件将包含绘制的最后一页。


Difference between OSes

这些函数是三个或更多不同底层设备的接口。

在Windows上,设备通过Windows的GDI调用绘制到隐藏屏幕。

在支持X11的平台上,绘制到隐藏的X11显示。

在macOS上,当在控制台工作时,当R在适当的支持下编译时,使用Apple的Quartz绘图系统。

其中支持已编译为开罗图形,绘图在开罗表面。这可以使用本机平台对字体的支持,也可以使用fontconfig来支持各种字体格式。

所支持的选项和所产生的输出之间不可避免地会存在差异。也许最重要的是对抗锯齿字体和半透明颜色的支持:在可用的情况下,基于cairo或quartz的设备可能会获得最佳效果。

Windows系统默认的扩展名是".jpg"和".tif",其他地方则是".jpeg"和".tiff"。


Conventions

本节描述《R internal》手册中图形设备约定的实现。

默认设备大小为像素。

字体大小以大点表示,解释为res - ppi。

默认字体系列是Arial。

线宽是1/96英寸的倍数(以分辨率ppi解释),最小为一个像素(type = "window ")或0.01 (type = "cairo")。

对于type = "window ",圆的最小半径为1像素。

颜色由浏览应用程序解释。


Note

这些设备的type = "windows"版本有效地在隐藏屏幕上绘图,然后将图像复制到所需的格式。这意味着它们具有与实际屏幕设备相同的色彩处理,并且如果设置为24位或32位色彩模式则效果最佳。

对于高质量的图,如果antialias = "cleartype"不是Windows系统的默认值,你可能需要这个参数。另一方面,png(antialias = "none")将提供最紧凑的文件。


相关推荐
Thomas_Cai9 分钟前
Python后端flask框架接收zip压缩包方法
开发语言·python·flask
霍先生的虚拟宇宙网络11 分钟前
webp 网页如何录屏?
开发语言·前端·javascript
温吞-ing13 分钟前
第十章JavaScript的应用
开发语言·javascript·ecmascript
魔道不误砍柴功19 分钟前
实际开发中的协变与逆变案例:数据处理流水线
java·开发语言
鲤籽鲲28 分钟前
C# MethodTimer.Fody 使用详解
开发语言·c#·mfc
亚图跨际31 分钟前
Python和R荧光分光光度法
开发语言·python·r语言·荧光分光光度法
Rverdoser39 分钟前
RabbitMQ的基本概念和入门
开发语言·后端·ruby
dj244294570742 分钟前
JAVA中的Lamda表达式
java·开发语言
流星白龙1 小时前
【C++习题】10.反转字符串中的单词 lll
开发语言·c++
尘浮生1 小时前
Java项目实战II基于微信小程序的校运会管理系统(开发文档+数据库+源码)
java·开发语言·数据库·微信小程序·小程序·maven·intellij-idea