मेरे पास एक base64 img एन्कोडेड है जो आप यहां पा सकते हैं । मैं इसकी ऊंचाई और चौड़ाई कैसे प्राप्त कर सकता हूं?
मेरे पास एक base64 img एन्कोडेड है जो आप यहां पा सकते हैं । मैं इसकी ऊंचाई और चौड़ाई कैसे प्राप्त कर सकता हूं?
जवाबों:
var i = new Image();
i.onload = function(){
alert( i.width+", "+i.height );
};
i.src = imageData;
तुल्यकालिक उपयोग के लिए बस इसे इस तरह वादे में लपेटें:
function getImageDimensions(file) {
return new Promise (function (resolved, rejected) {
var i = new Image()
i.onload = function(){
resolved({w: i.width, h: i.height})
};
i.src = file
})
}
तब आप तुल्यकालिक कोडिंग शैली में डेटा प्राप्त करने के लिए प्रतीक्षा का उपयोग कर सकते हैं:
var dimensions = await getImageDimensions(file)
मैंने पाया कि उपयोग करना .naturalWidth
और .naturalHeight
सबसे अच्छा परिणाम था।
const img = new Image();
img.src = 'https://via.placeholder.com/350x150';
img.onload = function() {
const imgWidth = img.naturalWidth;
const imgHeight = img.naturalHeight;
console.log('imgWidth: ', imgWidth);
console.log('imgHeight: ', imgHeight);
};
यह केवल आधुनिक ब्राउज़रों में समर्थित है। http://www.jacklmoore.com/notes/naturalwidth-and-naturalheight-in-ie/
<img>
उस छवि के साथ एक छिपा बनाएँ और फिर jquery .net () और का उपयोग करें। ऊंचाई()
$("body").append("<img id='hiddenImage' src='"+imageData+"' />");
var width = $('#hiddenImage').width();
var height = $('#hiddenImage').height();
$('#hiddenImage').remove();
alert("width:"+width+" height:"+height);
यहां परीक्षण करें: FIDDLE
छवि शुरू में छिपी हुई नहीं है। यह बनाया जाता है, फिर आप चौड़ाई और ऊंचाई प्राप्त करते हैं और फिर इसे हटा देते हैं। यह बड़ी छवियों में एक बहुत ही कम दृश्यता का कारण हो सकता है इस मामले में आपको छवि को दूसरे कंटेनर में लपेटना होगा और उस कंटेनर को छिपाया जाना चाहिए जो छवि ही नहीं है।
एक और फ़िडल जो कि gp.'s anser के अनुसार डोम में नहीं जुड़ता है: यहाँ