Julia Images
Julia ImagesはJuliaの画像操作ライブラリ。画像に線を引いたりする関数(draw!)をはあるのだけど、画像に画像を張り込む関数が見当たらない。
よく考えてみたら、実はImageの画像はRGB型(もしくはRGBA型)の2次元配列にすぎない。なので、普通にスライスで書いてやればいいのだった。
こんな関数を書いてやればいい。ピクセルのタイプが違うと破綻するので、本当はそのあたりをチェックしたり、バウンダリのチェックとかもしないといけない。
function put!(target, src, p::Point)
x = size(src)[1]
y = size(src)[2]
target[p.x:p.x+x - 1, p.y:p.y+y - 1] = src
target
end
ブランクイメージを作る
ブランクイメージはzeros
で作れる。RGBAの透過属性ありでつくる。
using Plots, Images, ImageDraw
blank = zeros(RGBA{N0f8}, (300, 300))
画像を読みこんで小さくする
30x30にする。
img = load("pet_robot_dog.png")
img2 = imresize(img, (30,30))
適当な場所に張り込んでみる。
for i in 1:30:300
putImage!(blank, img2, Point(i,i))
end
blank
こんなかんじになる。