-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.jl
43 lines (35 loc) · 903 Bytes
/
app.jl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
module App
using Base64
using Random
using GenieFramework
using ImageCore
using ImageShow
# Edit lib/sample.jl to update `Aladding module`
using ..Aladdin
@genietools
function encode(io::IOBuffer, img)
io2=IOBuffer()
b64pipe=Base64EncodePipe(io2)
write(io,"data:image/png;base64,")
show(b64pipe, MIME"image/png"(), img) # will be valid if we load ImageShow.jl
write(io, read(seekstart(io2)))
end
function encode(img::Matrix{<:Colorant})
io = IOBuffer()
encode(io, img)
String(take!(io))
end
@app begin
@in seed = 0
timg = rand(RGB, 10, 10)
@out imageurl = encode(timg)
@onchange seed begin
rng = Xoshiro(seed)
ifs = rand(rng, Aladdin.IFSType)
fill!(Aladdin.canvas, 0)
timg = Aladdin.render!(rng, Aladdin.canvas, Aladdin.xs, Aladdin.ys, ifs)
imageurl = encode(timg)
end
end
@page("/", "app.jl.html")
end