2016-08-26 11 views
1

入力画像(入力サイズ)を入力フィールドにプレビューする、このjavascript関数があります。Javascript入力プレビュー画像の低解像度

function readURL(input) { 
    if (input.files && input.files[0]) { 
     var reader = new FileReader(); 

     reader.onload = function (e) { 
      $('#blah').attr('src', e.target.result); 
     } 
     reader.readAsDataURL(input.files[0]); 
    } 

    $("#imgInp").change(function(){ 
     readURL(this); 
    }); 
} 

と関連するHTML:

<form id="form1" runat="server"> 
    <input type='file' id="imgInp" /> 
    <img id="blah" src="#" alt="your image" /> 
</form> 

私はこの答えからコードを得た:Preview an image before it is uploaded

私の質問がある場合、それは、プレビュー画像の解像度を変更することが可能ですか、プレビュー画像の解像度だけを変更したいのですが、画像自体ではありません。

アイデア?

+0

imgタグに幅と高さを追加しようとしましたか? – KungWaz

+0

@KungWazは以前の解像度を変更しますか? – utdev

+0

はい、表示されたイメージの解像度は変更されますが、フルイメージ(KB単位)は読み込まれます。 – KungWaz

答えて

0

drawing that in canvasでプレビューすることもできます。キャンバスに描画する際にカスタム解像度を指定することができます。その

function readURL(input) { 
 

 
    if (input.files && input.files[0]) { 
 
     var reader = new FileReader(); 
 

 
     reader.onload = function (e) { 
 
      $('#blah').attr('src', e.target.result); 
 
      var ctx = $('#myCanvas')[0].getContext("2d"); 
 
      ctx.drawImage($('#blah')[0], 0, 0, 240, 297); 
 
     } 
 

 
     reader.readAsDataURL(input.files[0]); 
 
    } 
 
} 
 

 
$("#imgInp").change(function(){ 
 
    readURL(this); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form id="form1" runat="server"> 
 
    <input type='file' id="imgInp" /> 
 
    <img id="blah" style="display:none;" /> 
 
    <canvas id="myCanvas" width="240" height="297"></canvas> 
 
</form>

+0

キャンバスに描画する前に '$( '#blah)[0]'が読み込まれるのを待たなければなりません。 – Kaiido

+0

私はこのエラーを受け取ります。この行にはUncaught TypeError:undefinedのgetContext 'を読み取れません。' 'var ctx = $( '#myCanvas')[0] .getContext(" 2d ");' – utdev

+0

nevermindはエラーを解決しました。 – utdev

0

のようなものは、あなたのimgを変更し、幅を追加し、および/または高さは、ご希望のサイズなどに解像度を収縮する属性:

<form id="form1" runat="server"> 
    <input type='file' id="imgInp" /> 
    <img id="blah" src="#" alt="your image" width="300" height="300" /> <!-- Change the width and height accordingly. --> 
</form> 
+0

プレビューされた解像度が変更されますか? – utdev

+0

@ JohnDoe2、yes ...これは、300x300のpxiels画像を表示するための答えのHTMLごとにid = "blah"のimgを作成します。あなたは、あなたが望む解像度に変更することができます。試してみましたか? – Morgs

+0

私はあなたに感謝しました私はいくつかの試行を与え、後で応答を与える – utdev

0
function readURL(input) { 
    if (input.files && input.files[0]) { 
    var reader = new FileReader(); 

    reader.onload = function (e) { 
     var image = new Image(); 
     image.src = e.target.result; 

     image.onload = function() { 
     // access image size here 
     var aspectRatio = this.width/this.height, 
      thumbWidth = 100, 
      thumbHeight = aspectRatio * thumbWidth; 

     $('#blah').attr('src', this.src); 
     $('#blah').attr('width', thumbWidth); 
     $('#blah').attr('height', thumbHeight); 
     }; 
    }; 
    reader.readAsDataURL(input.files[0]); 
    } 

    $("#imgInp").change(function(){ 
    readURL(this); 
    }); 
} 

このかもしれません画像を小さくしたときの画像のアスペクト比を維持します。あなたが望むものにあなたの幅を変えてください。

+0

あなたの提案をありがとうが、画像のサイズはちょうど変更されますが、解像度が、それは小さくなるが、私はまだそれをズーム解像度が変わっていないように見える – utdev

+0

次に、イメージの解像度を魔法のように変えることができないので、私はあなたがしたいことを理解しているとは思わない。 – KungWaz

関連する問題