loder
1.0.0
loder
软件包提供了轻松从PNG图像文件阅读并写信给它们的功能。它的功能与Simon Urbanek的古老png
软件包非常相似,但是与该软件包不同,它不需要安装外部libpng
和zlib
库。相反, loder
包括Lode Vandevenne的紧凑型Lodepng库,该库提供了独立的PNG读写功能。
可以使用标准命令从Cran中安装软件包
install.packages( " loder " )
另外,最新的开发版本可以使用remotes
软件包直接从GitHub安装。
# # install.packages("remotes")
remotes :: install_github( " jonclayden/loder " )
readPng
功能用于读取PNG图像。它返回一组级别的loder
Class Loder)数组,其中三个维度代表行,列和通道。灰度图像具有一个通道,灰色/alpha图像具有两个,红色/绿色/蓝色(RGB)图像具有三个,红色/绿色/蓝色/alpha图像具有四个。
library( loder )
path <- system.file( " extdata " , " pngsuite " , " basn6a08.png " , package = " loder " )
image <- readPng( path )
dim( image )
# # [1] 32 32 4
元数据包括背景颜色,长宽比和像素大小或图像分辨率,如果存储在文件中,则可以通过属性获得。
path <- system.file( " extdata " , " pngsuite " , " cdfn2c08.png " , package = " loder " )
attributes(readPng( path ))
# # $dim
# # [1] 32 8 3
# #
# # $class
# # [1] "loder" "array"
# #
# # $range
# # [1] 0 255
# #
# # $asp
# # [1] 4
来自mmand
软件包的display
功能尊重这些属性,可用于查看R图形设备上的图像。
# # install.packages("mmand")
mmand :: display( image )
仅元数据就可以使用inspectPng
函数读取,该功能还提供有关达到的压缩水平的信息:
inspectPng( path )
# # PNG file: /opt/homebrew/lib/R/4.2/site-library/loder/extdata/pngsuite/cdfn2c08.png
# # - 32 x 8 pixels, RGB
# # - 8 bpp (uncompressed data size 768 B; file size is 404 B)
# # - Aspect ratio is 4 : 1
图像数据可以使用writePng
函数写回文件。可以使用range
属性或同名参数设置像素强度(即黑白点)的理论数值范围。
writePng( image , tempfile(), range = c( 0 , 200 ))
这将重新列出图像强度,并将指定范围之外的任何值夹至适当的极端。