loder
パッケージは、PNGイメージファイルから簡単に読み取り、書き込みのための機能を提供します。 Simon UrbanekのVenerable png
パッケージと非常によく似た方法で機能しますが、そのパッケージとは異なり、外部libpng
およびzlib
ライブラリをインストールする必要はありません。代わりに、 loder
はLode VandevenneのCompact Lodepngライブラリが含まれており、自己完結型のPNG読み取り機能を提供します。
パッケージは、標準コマンドを使用してクランからインストールできます
install.packages( " loder " )
または、最新の開発バージョンは、 remotes
パッケージを使用してGitHubから直接インストールできます。
# # install.packages("remotes")
remotes :: install_github( " jonclayden/loder " )
readPng
関数は、PNG画像の読み取りに使用されます。行、列、チャンネルを表す3つの次元を持つクラスloder
の配列を返します。グレースケール画像には1つのチャネル、グレー/アルファ画像には2つの赤/緑/青(RGB)の画像が3つ、赤/緑/青/アルファ画像には4つあります。
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 ))
これにより、画像の強度が再描かれ、指定された範囲外の値を適切な極端にクリップします。