แพ็คเกจ loder
มีฟังก์ชั่นสำหรับการอ่านจากไฟล์รูปภาพ PNG ได้อย่างง่ายดายและเขียนถึงพวกเขา มันทำหน้าที่ในลักษณะที่คล้ายกันมากกับแพ็คเกจ png
ที่น่าเคารพนับถือของ Simon Urbanek แต่ไม่เหมือนกับแพ็คเกจนั้นที่ไม่จำเป็นต้องติดตั้งไลบรารี libpng
และ zlib
ภายนอก แต่ loder
รวมถึงไลบรารี Lodepng ขนาดกะทัดรัดของ Lode Vandevenne ซึ่งให้ฟังก์ชั่นการอ่านและเขียน PNG ที่มีอยู่ในตัวเอง
แพ็คเกจอาจติดตั้งจาก CRAN โดยใช้คำสั่งมาตรฐาน
install.packages( " loder " )
อีกทางเลือกหนึ่งคือเวอร์ชันการพัฒนาล่าสุดสามารถติดตั้งได้โดยตรงจาก GitHub โดยใช้แพ็คเกจ remotes
ได้แก่
# # install.packages("remotes")
remotes :: install_github( " jonclayden/loder " )
ฟังก์ชั่น readPng
ใช้ในการอ่านรูปภาพ PNG มันส่งคืนอาร์เรย์ของ loder
เรียนที่มีสามมิติที่แสดงถึงแถวคอลัมน์และช่อง ภาพ Greyscale มีหนึ่งช่องภาพสีเทา/อัลฟ่ามีภาพสองภาพสีแดง/เขียว/น้ำเงิน (RGB) มีภาพสามภาพและภาพสีแดง/เขียว/น้ำเงิน/อัลฟ่ามีสี่ภาพ
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
ฟังก์ชั่น display
จากแพ็คเกจ mmand
เกี่ยวข้องกับคุณลักษณะเหล่านี้และสามารถใช้เพื่อดูภาพบนอุปกรณ์กราฟิก 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 ))
สิ่งนี้จะช่วยลดความเข้มของภาพและคลิปค่าใด ๆ นอกช่วงที่ระบุถึงสุดขั้วที่เหมาะสม