نحوه عملکرد تبدیل HEIC در مرورگر
مرورگرها بهتنهایی نمیتوانند HEIC را باز کنند. این فرمت از codec HEVC استفاده میکند که Chrome، Firefox و بیشتر مرورگرهای دسکتاپ رمزگشایی برای آن ارسال نمیکنند، بنابراین این صفحه رمزگشای خودش را میآورد. یک build کامپایلشده به WebAssembly از libheif، همان کتابخانه متنباز که بیشتر ابزارهای HEIC را پشتیبانی میکند، اولین باری که Convert را میزنید بارگذاری میشود و هر رمزگشایی را بهصورت محلی انجام میدهد. این pipeline چهار مرحلهای است، همه داخل تب شما.
- یک یا چند فایل HEIC یا HEIF بکشید. صفحه هر کدام را بهعنوان Blob در حافظه میخواند، بنابراین هیچچیز به سرور کپی نمیشود یا روی دیسک نوشته نمیشود.
- در اولین تبدیل، رمزگشای WebAssembly از libheif یک بار دانلود میشود (حدود ۱.۳ مگابایت) و در کش باقی میماند. تبدیلهای بعدی انتظار را کاملاً رد میکنند.
- libheif تصویر فشردهشده با HEVC را به پیکسلهای خام رمزگشایی میکند، سپس آنها را به JPG یا PNG دوباره رمزگذاری میکند. برای JPG، نوار کیفیت مستقیماً به تنظیم فشردهسازی encoder نگاشت میشود؛ خروجی PNG همیشه بیاتلاف است.
- برای هر نتیجه یک تصویر بندانگشتی و اندازه فایل دریافت میکنید، دکمه دانلود برای هر عکس، و یک ZIP برای کل دسته. ZIP در حافظه با fflate، یک کتابخانه ۸ کیلوبایتی که در تب اجرا میشود، ساخته میشود.
چرا HEIC را به JPG تبدیل کنیم؟
- HEIC پیشفرض Apple است، اما در هر جای دیگری یک مانع است. Windows برای پیشنمایش آن به یک بسته codec پولی نیاز دارد، بسیاری از فرمهای آپلود وب آن را کاملاً رد میکنند و نرمافزار عکس قدیمیتر آن را فایل خراب میداند. JPG روی هر چیزی باز میشود.
- عکسهایتان خصوصی میمانند. عکس پزشکی، ملک مشتری، اسکن پاسپورت — هیچکدام نباید از یک مبدل ابری غریبه عبور کنند. اینجا رمزگشایی در مرورگر شما اتفاق میافتد، بنابراین تصویر هرگز دستگاهتان را ترک نمیکند.
- تبدیل دستهای وقت واقعی صرفهجویی میکند. عکسهای یک آخر هفته میتواند چند صد فایل HEIC باشد. همه را بکشید، یک بار Convert بزنید و یک ZIP بگیرید بهجای اینکه آنها را یکبهیک از یک مبدل رد کنید.
- کنترل کیفیت و اندازه را حفظ میکنید. نوار کشویی به شما اجازه میدهد کمی جزئیات را در ازای یک JPG بسیار کوچکتر معامله کنید، که وقتی یک دسته را ایمیل میکنید یا به CMSای که سقف اندازه فایل دارد آپلود میکنید مهم است.
کاربردهای رایج
تبدیل HEIC هر بار که یک عکس iPhone باید به جایی برود که فرمت Apple را نمیشناسد مطرح میشود. سه الگویی که مدام میبینیم.
- اشتراکگذاری عکسهای iPhone با کاربران Windows یا Android. AirDrop فرمت HEIC را حفظ میکند، اما همین که عکسی روی یک دستگاه غیر Apple یا یک سرویسگیرنده ایمیل قدیمیتر قرار میگیرد، باز نمیشود. تبدیل ابتدایی به JPG یعنی برای همه کار میکند.
- آپلود به فرمهای وب و بازارها. پورتالهای استخدامی، سایتهای دولتی، آپلودهای ادعای بیمه — بسیاری هنوز HEIC را رد میکنند. یک گذر سریع JPG آپلود ردشده را به پذیرفتهشده تبدیل میکند.
- آمادهسازی عکسها برای ویرایش یا چاپ. برخی نسخههای قدیمی Photoshop، Lightroom و سرویسهای چاپ با HEIC مشکل دارند. تبدیل به PNG کیفیت کامل را برای ویرایش حفظ میکند، یا JPG برای یک فایل کوچکتر که چاپخانه میپذیرد.
یک مثال عملی: رول دوربین تا یک ZIP قابل اشتراکگذاری
فرض کنید از یک سفر با ۴۰ عکس HEIC برگشتید و خانوادهتان همگی از لپتاپ Windows استفاده میکنند. سریعترین راه برای رساندن چیزی به آنها که باز شود این است.
همه ۴۰ فایل را یکجا در ناحیه آپلود بکشید. خروجی را روی JPG بگذارید و کیفیت را روی 0.85 تنظیم کنید که عکسها را واضح نگه میدارد در حالی که اندازه فایل را بهخوبی پایینتر از HEIC اصلی میآورد. تبدیل همه را بزنید. رمزگشا یک بار بارگذاری میشود، سپس دسته را پردازش میکند، معمولاً یک تا دو ثانیه در هر عکس. وقتی تمام شد، برای دریافت همه JPG در یک آرشیو که میتوانید ایمیل کنید یا در یک پوشه مشترک قرار دهید، روی دانلود .zip کلیک کنید. کل اجرا در مرورگرتان انجام میشود؛ تنها ترافیک شبکه خود صفحه و یک بار دانلود رمزگشا است. عکسهایتان هیچوقت به سرور نمیرسند.
چرا مرورگرم نمیتواند HEIC را مستقیم باز کند؟
HEIC پیکسلهایش را با فشردهسازی HEVC (H.265) ذخیره میکند، یک codec که تحت محدودیتهای پتنت است و بهندرت در مرورگرها ارسال میشود. Apple آن را در iOS و macOS ادغام کرده، اما Chrome، Firefox و بیشتر نرمافزارهای Windows رمزگشای HEIC آمادهبهکار ندارند. به همین دلیل یک فایل HEIC معمولاً آیکون تصویر خراب نشان میدهد یا فقط باز نمیشود. این ابزار با بارگذاری رمزگشای خودش، یک build WebAssembly از کتابخانه متنباز libheif، مشکل را دور میزند، بنابراین تبدیل صرفنظر از اینکه مرورگرتان چه چیزی بهصورت بومی ارسال میکند کار میکند.
آیا عکسهایم جایی آپلود میشوند؟
خیر. هر رمزگشایی و دوباره رمزگذاری با استفاده از موتور WebAssembly از libheif داخل تب مرورگرتان انجام میشود. هیچ داده عکسی به سرور ارسال نمیشود، هیچ آپلود موقتی، و هیچ رفتوبرگشتی به ابر نیست. میتوانید خودتان تأیید کنید: DevTools را باز کنید، به پنل Network بروید و یک تبدیل اجرا کنید. تنها درخواستهایی که میبینید بارگذاری اولیه صفحه، دانلود یکباره رمزگشا و فراخوانیهای تبلیغاتی هستند. هیچچیز شبیه عکس از تب خارج نمیشود.
JPG انتخاب کنم یا PNG؟
برای عکاسی JPG انتخاب کنید — این پیشفرض جهانی است، نوار کیفیت فایلها را کوچک نگه میدارد و همان چیزی است که ایمیل، شبکههای اجتماعی و بیشتر فرمهای آپلود انتظار دارند. PNG را انتخاب کنید وقتی به یک نسخه بیاتلاف نیاز دارید، مثلاً اگر قرار است تصویر را بیشتر ویرایش کنید و نمیخواهید artifacts فشردهسازی در آن پخته شوند، یا اگر عکس لبههای تیز و مناطق رنگ تخت دارد مثل یک اسکرینشات. فایلهای PNG بزرگترند چون بیاتلاف هستند، بنابراین برای عکسهای معمولی JPG با کیفیت ۰.۸۵ تقریباً همیشه انتخاب بهتری است.
Live Photos و فایلهای HEIC چندتصویری چه وضعیتی دارند؟
برخی فایلهای HEIC، از جمله Live Photos، burst و برخی صادرات Apple، بیش از یک تصویر در یک container واحد دارند. وقتی رمزگشا چندین فریم پیدا میکند، این ابزار هر کدام را تبدیل میکند و با یک پسوند عددی نامگذاری میکند (photo-1.jpg، photo-2.jpg و به همین ترتیب) تا هیچکدام گم نشود. اگر فایل خاصی خراب باشد یا از یک نوع codec استفاده کند که libheif نمیتواند بخواند، آن یک فایل با خطا علامتگذاری میشود و بقیه دسته ادامه مییابد. یک عکس بد هیچوقت کل اجرا را متوقف نمیکند.
عکسهای iPhone را بکشید، JPG یا PNG را انتخاب کنید، تبدیل کنید. همه چیز در تب شما اجرا میشود. بدون آپلود، بدون حساب کاربری، بدون انتظار در صف سرور.