Skip to content

Commit ab00542

Browse files
committed
補上兩個忘記交的文件……
1 parent d11ba4c commit ab00542

2 files changed

Lines changed: 154 additions & 0 deletions

File tree

html/圖像融合.coffee

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
window.圖像融合 =
2+
緩存: {} ,
3+
圖像融合: (圖片名組, f) ->
4+
緩存 = this.緩存
5+
if 緩存[圖片名組.toString()]
6+
console.log '用緩存'
7+
t = this.緩存[圖片名組.toString()]
8+
f(t[0], t[1])
9+
m = 0
10+
圖片組 = []
11+
for i in 圖片名組
12+
t = new Image()
13+
t.src = i[0]
14+
t.setAttribute("crossOrigin", 'Anonymous')
15+
t.偏移x = i[1]
16+
t.偏移y = i[2]
17+
圖片組.push(t)
18+
t.onload = ->
19+
m += 1
20+
if m == 圖片名組.length
21+
go(緩存)
22+
go = (緩存)->
23+
x = Math.max.apply(Math, (圖片.width + 圖片.偏移x for 圖片 in 圖片組))
24+
y = Math.max.apply(Math, (圖片.height + 圖片.偏移y for 圖片 in 圖片組))
25+
26+
canvas = document.createElement("canvas")
27+
canvas.width = 極x
28+
canvas.height = 極y
29+
30+
context = canvas.getContext("2d")
31+
for 圖片 in 圖片組
32+
context.drawImage(圖片, 圖片.偏移x , 圖片.偏移y , 圖片.width , 圖片.height)
33+
34+
base64 = canvas.toDataURL("image/png")
35+
緩存[圖片名組.toString()] = [[極x, 極y], base64]
36+
37+
f([極x, 極y], base64)
38+
39+
融合到div: (圖片名組, 時間, dv) ->
40+
this.圖像融合(圖片名組, (尺寸, base64) ->
41+
dv = document.getElementById(dv)
42+
if 時間 > 0
43+
dv.style.transition = "background #{時間}s, width #{時間}s, height #{時間}s, top #{時間}s, left #{時間}s, transform #{時間}s"
44+
else
45+
dv.style.transition = ""
46+
dv.style.width = 尺寸[0]
47+
dv.style.height = 尺寸[1]
48+
dv.style.backgroundImage = "url(#{base64})"
49+
)
50+
51+
52+
# window.onload = ->
53+
# 融合到div([
54+
# ['體.png', 2, 156],
55+
# ['0.png', 423, 338],
56+
# ], 1)
57+
#
58+
# document.getElementById('avatar').onclick=->
59+
# 融合到div([
60+
# ['體.png', 2, 156],
61+
# ['1.png', 425, 336]
62+
# ], 0.5)

html/圖像融合.js

Lines changed: 92 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)