জেএস - বেস 64 কোড থেকে চিত্রের প্রস্থ এবং উচ্চতা পান


উত্তর:


152
var i = new Image(); 

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

i.src = imageData; 

4
মাত্র দুর্দান্ত, আকার চেক করতে এটি অর্ধেক সময় নেয়, আপনাকে অনেক ধন্যবাদ!
বোমাবাজি

9
খুব খারাপ যে এটি একটি অ্যাসিক্রোনাস প্রক্রিয়া।
কোইন ডামেন

4
পুনঃটুইট আমার পাশাপাশি সিঙ্ক্রোনাস প্রক্রিয়াও প্রয়োজন।
1.21 গিগাওয়াটস

আপনি দুর্দান্ত
ভালড্রিনিয়াম

13
আমি আরও যোগ করব যে এখানে ক্রমটি খুব গুরুত্বপূর্ণ। আপনি যদি অন্য উপায়ে এটি করেন তবে (ওভারলোডের আগে src) আপনি ইভেন্টটি মিস করতে পারেন। দেখুন: stackoverflow.com/a/2342181/4826740
maxshuty

34

সিঙ্ক্রোনাস ব্যবহারের জন্য কেবল এটির মতো প্রতিশ্রুতিতে এটি গুটিয়ে রাখুন:

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)

4
যদিও এটি এখনও অ্যাসিক্রোনাস। শুধু সিনট্যাকটিক চিনি ব্যবহার করছি।
গুস্তাভোপচ

'ন্যাচারালউইথ' এবং 'ন্যাচারাল হাইট'ই কি সেরা পছন্দ নয়? stackoverflow.com/questions/28167137/...
Crashalot

11

আমি খুঁজে পেয়েছি যে ব্যবহার করে .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/n Naturalwidth-and-n Naturalheight-in-ie/


2

<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);

পরীক্ষা এখানে: স্বল্প

চিত্রটি গোপনে তৈরি করা হয় না। এটি তৈরি হয়ে যায়, তারপরে আপনি প্রস্থ এবং উচ্চতা পাবেন এবং তারপরে এটি সরিয়ে ফেলুন। এই ক্ষেত্রে বৃহত চিত্রগুলিতে খুব সংক্ষিপ্ত দৃশ্যমানতার কারণ হতে পারে আপনাকে অন্য পাত্রে চিত্রটি আবৃত করতে হবে এবং সেই ধারকটি চিত্রটি নিজেই গোপন রাখেনি।


জিপি'এর অনুসারে ডোম যুক্ত করে না এমন আরও একটি ফিডাল: এখানে


var i = নতুন চিত্র (); i.src = imageData; সেটটাইমআউট (ফাংশন () {সতর্কতা ("প্রস্থ:" + আই.উইথ + "উচ্চতা:" + আই উচ্চতা);}, 100);
জিপি

এটি কেবলমাত্র জাস্টফিল্ডের প্রকৃতির কারণে প্রয়োজনীয়, তবে আপনি প্রাথমিক 0 প্রস্থ এবং উচ্চতার সমস্যাটি সমাধান করার পরিবর্তে অনলডকে অন ডমরেডিতে পরিবর্তন করতে পারেন। কোড ধরে নিয়েছে যে আপনি এই কাজটিকে আপনার কাজের কোথাও ডেকে নিয়েছেন যেখানে নথিটি ইতিমধ্যে লোড হয়েছে।
দেশু

অনুমান করুন আপনার বক্তব্যটি হ'ল, প্রস্থ এবং উচ্চতা পেতে আপনাকে ডোমকে কিছু যুক্ত করার দরকার নেই। আপনার পরামর্শ প্রতিফলিত করতে উত্তর পরিবর্তন করবে।
দেশু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.