2012-04-18 10 views
17

私は、javascriptイメージカラーピッカーを作ろうとしています。 ローカルイメージをサーバーにアップロードせずにキャンバスで開くことは可能ですか?キャンバスでローカル画像を開く

function draw() { 
    var ctx = document.getElementById('canvas').getContext('2d'); 
    var img = new Image(); 
    img.onload = function(){ 
     ctx.drawImage(img,0,0); 
    } 

    img.src = $('#uploadimage').val(); 
} 

<input type='file' name='img' size='65' id='uploadimage' /> 
+0

Erm、どうしてですか?相対パスを指定します。 – kirilloid

+0

[オフラインアプリケーション](http://www.w3.org/TR/offline-webapps/)で行うことができます。 – Oded

答えて

31

すべてのブラウザ(IEとOpera私の知る限り)でサポートされていますが、File API

function draw() { 
    var ctx = document.getElementById('canvas').getContext('2d') 
    , img = new Image() 
    , f = document.getElementById("uploadimage").files[0] 
    , url = window.URL || window.webkitURL 
    , src = url.createObjectURL(f); 

    img.src = src; 
    img.onload = function(){ 
    ctx.drawImage(img,0,0); 
    url.revokeObjectURL(src); 
    } 
} 

<input type='file' name='img' size='65' id='uploadimage' /> 

を使用してデータURIを得ることができない私は、一例としてfiddle hereを追加しました。

+0

Thxは、これは完璧です。 – user1093555

+0

私はこれを一度だけupvotedことができますそのような恥:-) – Potherca

関連する問題