it-swarm.dev

JS - احصل على عرض الصورة والارتفاع من كود base64

لدي base64 img encoded يمكنك العثور عليه هنا . كيف يمكنني الحصول على الطول والعرض؟

69
bombastic
var i = new Image(); 

i.onload = function(){
 alert( i.width+", "+i.height );
};

i.src = imageData; 
116
gp.

للاستخدام المتزامن ، فقط قم بلفها في وعد مثل هذا:

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)
19
EscapeNetscape

لقد وجدت أن استخدام .naturalWidth و. naturalHeight كان له أفضل النتائج.

var img = new Image();

img.onload = function() {
    var imgWidth = img.naturalWidth,
        imgHeight = img.naturalHeight;
};

هذا مدعوم فقط في المتصفحات الحديثة. http://www.jacklmoore.com/notes/naturalwidth-and-naturalheight-in-ie/

3
Bill Keller

قم بإنشاء <img> مخفي بهذه الصورة ثم استخدم jquery .width () و. ارتفاع()

$("body").append("<img id='hiddenImage' src='"+imageData+"' />");
var width = $('#hiddenImage').width();
var height = $('#hiddenImage').height();
$('#hiddenImage').remove();
alert("width:"+width+" height:"+height);

اختبار هنا: كمان

لم يتم إنشاء الصورة في البداية مخفية. يتم إنشاؤه ، ثم تحصل على العرض والارتفاع ثم تقوم بإزالته. قد يتسبب هذا في رؤية قصيرة جدًا في الصور الكبيرة في هذه الحالة ، يجب عليك التفاف الصورة في حاوية أخرى وجعل تلك الحاوية مخفية وليس الصورة نفسها.


آخر Fiddle لا يضيف إلى dom وفقًا لجنس gp.: HERE

1
Desu