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
|
function getNaturalDimensions (img) {
if (img.naturalWidth) {
return { naturalWidth: img.naturalWidth, naturalHeight: img.naturalHeight }
}
if (img.videoWidth) {
return { naturalWidth: img.videoWidth, naturalHeight: img.videoHeight }
}
return { naturalWidth: img.width, naturalHeight: img.height }
}
function fromImage (url, cb) {
var loaded = false
var img = new Image ()
img.onload = function(){
if (loaded) return
loaded = true
fromCanvas(img, cb)
}
if (img.src == url) { return img.onload() }
img.src = url
if (img.complete) { return img.onload() }
}
function fromCanvas (img, cb) {
var canvas = document.createElement("canvas")
var ctx = canvas.getContext('2d')
var dims = getNaturalDimensions(img)
canvas.width = dims.naturalWidth
canvas.height = dims.naturalHeight
ctx.drawImage(img,0,0,dims.naturalWidth,dims.naturalHeight,0,0,canvas.width,canvas.height)
cb(canvas)
}
|