LoginSignup
1
1

More than 1 year has passed since last update.

Julia imagesで1枚の絵に別の絵を張り込む

Last updated at Posted at 2021-08-17

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

こんなかんじになる。

image.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1