زیپ کردن فایلهای JPEG، PDF و MP۴ بدون فشردهسازی دوباره
برای JPEG، PDF مدرن، MP۴، ZIP و فایلهای مشابه که قالبشان از قبل فشردهسازی میکند، «ذخیره بدون فشردهسازی دوباره» را انتخاب کنید. ZIP همچنان برای هر فایل یک نام، یک CRC-۳۲ و یک رکورد فهرست اضافه میکند، بنابراین بایگانی ممکن است اندکی از مجموع اندازهها بزرگتر باشد. ارزش کار در یک کانتینر قابلحمل است، نه یک تبدیل رسانهای اتلافی دیگر.
حداکثر ۲۰۰ فایل غیرخالی، هرکدام تا ۵۰ مگابایت و در مجموع تا ۲۵۰ مگابایت. بایتها در همین زبانه میمانند.
روش ۰ (Store) در ZIP هر بایت منبع را کپی میکند و فقط ساختار بایگانی و جمعهای کنترلی را میافزاید.
اجرای DEFLATE روی رسانهٔ ازپیشفشرده معمولاً صرفهجویی اندکی دارد یا هیچ، و میتواند ZIP را کمی بزرگتر کند.
حالت Store به معنای رها کردن فایلها نیست: ZIP همچنان نامها، مرزها و بررسیهای یکپارچگی را در یک فایل واحد نگه میدارد.
چگونگی کار
مراحل انجام کار
- بررسی کن ۱ تا ۲۰۰ فایل غیرخالی انتخاب شده، هیچ فایل بیش از ۵۰ مگابایت نیست و مجموع از ۲۵۰ مگابایت عبور نمیکند.
- هر نام را به basename تخت تبدیل کن، جداکنندهٔ مسیر و نویسهٔ کنترلی را حذف کن، نام رزروشدهٔ ویندوز را ایمن و برخوردهای بدون توجه به بزرگی حروف را شمارهگذاری کن.
- برای هر فایل یک ورودی ZIP آغاز کن؛ Store از روش ۰ و حالتهای سریع، متعادل و کمحجم از DEFLATE روش ۸ با سطحهای ۱، ۶ و ۹ استفاده میکنند.
- فایل را در قطعههای ۵۱۲ کیلوبایتی به نویسنده بده تا CRC-۳۲، رکوردها و پیشرفت را بسازد و میان قطعهها برای دکمهٔ لغو به رویدادها فرصت بده.
- تاریخ ثابت ۱ ژانویهٔ ۱۹۸۰ و دسترسی قابل حمل را روی هر ورودی بگذار، فهرست مرکزی را تمام کن و بایتهای ZIP را برای دریافت آماده ساز.
فرضها
- فایلها بهصورت ورودیهای تخت در ریشهٔ بایگانی قرار میگیرند؛ مسیر پوشه، توضیح و زمان اصلی فایل کپی نمیشود.
- حالت Store بایتهای منبع را تغییر نمیدهد، اما کوچکترشدن ZIP را تضمین نمیکند؛ سربرگ، نام، checksum و فهرست مرکزی اندازه دارند.
- سه سطح فشردهسازی همگی DEFLATE استانداردند. سطح بالاتر میتواند زمان بیشتری بگیرد و روی JPEG، MP۴، PDF یا ZIP تقریباً چیزی کم نکند.
- CRC-۳۲ خرابی تصادفی را هنگام استخراج پیدا میکند، اما امضای رمزنگاری یا اثبات منشأ نیست.
- ابزار رمزگذاری یا گذرواژه اضافه نمیکند؛ هرکس فایل ZIP را داشته باشد میتواند نام و محتوای ورودیها را ببیند.
- بایتهای منبع و بایگانی در حال رشد در Worker مرورگر نگه داشته میشوند؛ به همین دلیل سقفها صریحاند.
پرسشهای رایج
آیا ذخیره بدون فشردهسازی دوباره کیفیت JPEG یا MP۴ را کم میکند؟
خیر. بایتهای فایل اصلی در یک ورودی ZIP از نوع Store کپی میشوند و رمزگشایی یا کدگذاری نمیشوند. استخراج آن ورودی همان بایتها و در نتیجه همان جمع کنترلی فایل را بازتولید میکند.
چرا یک ZIP از نوع Store میتواند از فایلهای درونش بزرگتر باشد؟
ZIP برای هر ورودی به یک سرآیند محلی، نام فایل، توصیفگر داده و رکورد فهرست مرکزی نیاز دارد، بهعلاوهٔ یک رکورد پایانی برای کل بایگانی. بدون صرفهجویی فشردهسازی، این سربار ساختاری کانتینر را اندکی بزرگتر میکند.
منابع
روش کامل، مثال محاسبهشده و همهٔ فرضهای این نتیجه در این صفحه آمده است: ساخت فایل ZIP.