isImageSize

وارسی می‌کند که ابعاد یک فایل تصویری با خواسته‌ها می‌خواند یا نه.

API

isImageSize

بازگشت

آرگومان توضیح نوع
Promise<boolean> Promiseای که با «ابعاد می‌خواند یا نه» برآورده می‌شود Promise

پارامترها

پارامتر توضیح نوع پیش‌فرض
file شیء فایل تصویر File الزامی
width پهنای مورد انتظار (اختیاری) number اختیاری
height بلندای مورد انتظار (اختیاری) number اختیاری

نمونه

کاربرد پایه

import { isImageSize } from 'ranuts';

const fileInput = document.getElementById('fileInput');
fileInput.addEventListener('change', async (e) => {
  const file = e.target.files[0];
  if (file) {
    try {
      // وارسی اینکه پهنا ۸۰۰ است یا نه
      const isValid = await isImageSize(file, 800);
      if (isValid) {
        console.log('پهنای تصویر می‌خواند');
      } else {
        console.log('پهنای تصویر نمی‌خواند');
      }
    } catch (error) {
      console.error('وارسی شکست خورد:', error);
    }
  }
});

وارسی پهنا و بلندا

import { isImageSize } from 'ranuts';

async function validateImage(file) {
  // وارسی اینکه ۸۰۰x۶۰۰ است یا نه
  const isValid = await isImageSize(file, 800, 600);
  return isValid;
}

وارسی تنها بلندا

import { isImageSize } from 'ranuts';

const isValid = await isImageSize(file, undefined, 600);
// تنها وارسی می‌کند که بلندا ۶۰۰ است یا نه

وارسی پیش از بارگذاری

import { isImageSize } from 'ranuts';

async function handleFileUpload(file) {
  const isValid = await isImageSize(file, 1920, 1080);
  if (!isValid) {
    alert('ابعاد تصویر باید ۱۹۲۰x۱۰۸۰ باشد');
    return;
  }
  // بارگذاری را ادامه بده
}

رفتار

  1. اگر هم width و هم height را بدهید، هر دو باید بخوانند. اگر هیچ‌کدام را ندهید، تنها وارسی می‌شود که فایل همچون تصویر رمزگشایی می‌شود یا نه.
  2. شکست در رمزگشایی رد می‌کند (فایل خراب، چیزی که تصویر نیست)، به‌جای آنکه Promise را در انتظار رها کند.
  3. نشانی شیء همیشه آزاد می‌شود، چه کار بگیرد و چه نگیرد؛ پس وارسی فایل‌های فراوان، نشانی‌های blob را تا ترک صفحه نشت نمی‌دهد.
  4. تنها در مرورگر: در SSR با خطایی روشن رد می‌کند.

یادداشت‌ها

  1. ناهمگام است: Promise برمی‌گرداند، پس با await یا .then() رسیدگی کنید.

  2. دربارهٔ آرگومان‌ها:

  • اگر تنها width را بدهید، تنها پهنا وارسی می‌شود
  • اگر تنها height را بدهید، تنها بلندا وارسی می‌شود
  • اگر هر دو را بدهید، هر دو باید بخوانند
  1. محیط سرور: در محیط‌های سرور (بدون شیء window) رد می‌کند.

  2. پاک‌سازی حافظه: نشانی شیءِ ساخته‌شده را خودِ تابع در درون می‌روبد و نیازی به کار دستی نیست.

  3. کاربرد: معمولاً برای وارسی ابعاد پیش از بارگذاری فایل و وارسی اندازهٔ تصویر نمایه به کار می‌رود.