Mam zakodowany w base64 img, który możesz znaleźć tutaj . Jak mogę uzyskać jego wysokość i szerokość?
javascript
jquery
image
base64
dimensions
pompatyczny
źródło
źródło
W przypadku użycia synchronicznego po prostu zawiń go w taką obietnicę:
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 }) }
następnie możesz użyć await, aby uzyskać dane w synchronicznym stylu kodowania:
var dimensions = await getImageDimensions(file)
źródło
Odkryłem, że używając
.naturalWidth
i.naturalHeight
miałem najlepsze wyniki.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); };
Dokumenty:
Jest to obsługiwane tylko w nowoczesnych przeglądarkach. http://www.jacklmoore.com/notes/naturalwidth-and-naturalheight-in-ie/
źródło
Utwórz ukryty
<img>
obraz z tym obrazem, a następnie użyj jquery .width () i. wysokość()$("body").append("<img id='hiddenImage' src='"+imageData+"' />"); var width = $('#hiddenImage').width(); var height = $('#hiddenImage').height(); $('#hiddenImage').remove(); alert("width:"+width+" height:"+height);
Przetestuj tutaj: FIDDLE
Obraz nie jest początkowo tworzony jako ukryty. zostanie utworzony, a następnie uzyskasz szerokość i wysokość, a następnie ją usuniesz. Może to spowodować bardzo krótką widoczność w dużych obrazach, w tym przypadku musisz umieścić obraz w innym pojemniku i ukryć ten pojemnik, a nie sam obraz.
Kolejny Fiddle, który nie dodaje do domeny dom według odpowiedzi gp .: TUTAJ
źródło