2021/07/24

【R言語】ピクセル単位のビットマップ操作

operate_pixel.knit

256x256ピクセルの画像を生成します。ピクセル毎に着色し、赤成分を横方向に0から255まで、緑成分を縦方向に0から255まで変化させます。

1 サンプル1

ビットマップイメージファイルをimage_blank()関数とimage_data()を用いて作成する。

## magickライブラリ読み込み
library(magick)
## Linking to ImageMagick 6.9.10.23
## Enabled features: fontconfig, freetype, fftw, heic, lcms, pango, webp, x11
## Disabled features: cairo, ghostscript, raw, rsvg
## Using 2 threads
img <- image_blank(width=256, height=256)
image_info(img)
##   format width height colorspace matte filesize density
## 1    png   256    256       sRGB  TRUE        0   72x72
(bmp <- image_data(img))
## 4 channel 256x256 bitmap array: 'bitmap' raw [1:4, 1:256, 1:256] 00 00 00 00 ...
for (x in 1:256) {
    for (y in 1:256) {
        bmp[, x, y] <- as.raw(c(x-1, y-1, 0, 255)) # rgba
    }
}
(img <- image_read(bmp))

2 サンプル2

ビットマップ形式の配列からイメージファイルを作成する。

## magickライブラリ読み込み
library(magick)

## ビットマップイメージ作成
bmp2 <- array(as.raw(c(0, 0, 0, 255)), dim=c(4, 256, 256))

for (x in 1:256) {
    for (y in 1:256) {
        bmp2[, x, y] <- as.raw(c(x-1, y-1, 0, 255)) # rgba
    }
}
(img <- image_read(bmp2))

0 件のコメント:

コメントを投稿

【備忘録】時系列データの編集方法(R言語, tidyverse)

TimeSeries.knit 1 サンプルデータ作成 2 日付単位に集計する 2.1 月毎集計 2.2 四半期毎集計 ...