یکی از مهمترین مسایلی که نوع بشر همواره با آن درگیر بوده است، فشرده کردن فایلهایش نبوده است. چون اصلا این مسخرهبازی ها چند سال بیشتر نیست که به وجود آمدهاند :) ولی بهرحال گاهی اوقات لازم است که فایلهای خودتان را فشرده کنید و حالا که قرار است اینکار را بکنید، حتما میخواهید کمی با فشردهسازی و یک برنامه مناسب برای اینکار آشنا شوید.
فرض میکنیم که ما یک فایل متنی داریم که در آن عدد یک را تکرار کردهایم. مثلا پنجاه بار. چون این مثال خیلی سنگین بود، اجازه بدهید من با رسم شکل آن را برایتان توضیح بدهم :)
۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱۱
حالا به جای اینکه، یک ها را بشمارید که ببینید پنجاه تا هستند یا نه ، به ادامه مطلب توجه بفرمایید :) ما میخواهیم این فایل را فشرده کنیم تا جای کمتری روی دیسک ما اشغال کند. در حالت فعلی، این فایل پنجاه بایت فضای دیسک را اشغال میکند. (البته در واقعیت دقیقا اینطور نیست، ولی ما میگوییم هست، شماهم بگویید هست) حالا ما به جای اینکه این پنجاه یک را به صورت پنجاه عدد یک تنها ذخیره کنیم، میتوانیم، طبق یک الگوریتمی، آنها را به صورت زیر ذخیره کنیم:
{۱}۵۰
همینطور که مشاهده میفرمایید، حالا اطلاعات ما، به جای پنجاه بایت فرضی، فقط پنج بایت فضا روی دیسک مصرف میکنند.
تصور کنید ما به جای پنجاه عدد یک، مثلایک میلیون عدد یک داشتیم، در آن صورت چقدر در مصرف فضای دیسک صرفه جویی میشد؟ اگر لازم است من یک میلیون یک تایپ کنم تا موضوع کاملا مفهوم بشود. لازم نیست؟ مطمئن هستید؟ اوکی :)
این مثال البته خیلیخیلی ساده بود ولی اصل ماجرای فشرده سازی، یک چیزی توی همین مایه ها است. مثلا یک عکس را در نظر بگیرید. نه، اون عکس نه :) عکس یک صفحه تکرنگ آبی مثلا. بخشهای زیادی از این عکس، شامل رنگ آبی است. رنگ آبی هم دارای کد رنگ مشخصی است. پس برای فشرده سازی این عکس، میتوان بررسی کرد که چند پیکسل با کد رنگ یکسان کنار هم قرار گرفته و بعد با یک الگوریتمی، آن را فشرده کرد.
خب، منبع= تکنامه. به اینکه شما قرار نیست، فردا صبح شرکت نرمافزاری تاسیس کنید و برنامه فشرده سازی تولید کنید :) اجازه بدهید برویم سر اصل مطلب و ببینیم، چطور میشود فشرده کرد :) برنامهها و الگوریتمهای زیادی برای فشردهسازی وجود دارند. حتی ویندوز هم یک برنامه فشردهسازی ساده دارد که میتوانید با انتخاب فایلها و فولدرهایتان و راستکلیک روی آنها، با چند کلیک، آنها را فشرده کنید.
من عمدا از فایلهای JPG برای این مثال استفاده کردم تا موضوع دیگری را توضیح بدهم. اگر شماهم مانند مثال بالا، قصد فشردهسازی فایلهای JPG را داشته باشید، حتما از اینکه درصد فشردهسازی آنها خیلی کم است تعجب کردهاید. مثلا همین چند فایل بالا حدود ۷۶۸ کیلوبایت فضا روی دیسک اشغال کرده بودند و وقتی که آنها را فشرده کردیم، حجم شان به ۷۶۲ کیلوبایت رسید. یعنی اینهمه تلاش و زحمت مجدانه فقط برای ۶ کیلوبایت. آیا این انصاف است؟ :) دلیل اینکه انواع مشخصی از فایلها درصد فشردهسازی پایینی دارند، این است که فرمت خودشان، دارای الگوریتمهای فشرده سازی است. به همین دلیل است که وقتی شما یک فایل BMP را به JPG تبدیل میکنید، حجمش کاهش پیدا میکند. چون فرمت JPG دارای الگوریتمهایی است که با تجزیه و تحلیل اطلاعات عکس، آنها را به طور فشرده ذخیره میکند، هرچند این فشرده سازی از جنس فشردهسازی ZIP نیست، اما درهرحال چیز زیادی برای ZIP باقی نمیگذارد که خودش را نشان بدهد :)
خب، حالا اگر بیکار هستید، میتوانید چند فایل BMP پیدا کنید و آنها را فشرده کنید و چند فایل JPG راهم فشرده کنید و به بررسی نتایج حاصله بپردازید. منبع= تکنامه. به اینکه نتایج حاصله را قبلا عرض کردم خدمتتان، میرویم سر معرفی یک برنامه فشردهسازی خوب و رایگان و منبعباز، شماهم کارتان تمام شد، تشریف بیاورید :)
برنامه فشردهسازی ۷zip که لینک دانلودش را بالا مشاهده میفرمایید، همان برنامه رایگان و منبعبازی است که عرض کرده بودم خدمتتان. البته در میهن ما که برنامه چندهزار دلاری هم مفت و مجانی دست به دست میشود، صحبت از رایگان بودن کمی بامزه است، اما باید به این نکته توجه بفرمایید که برنامههای رایگان یک ویژگی مهم دارند و آن این است که برای نصب کردنشان، احتیاجی به نصب کرک و پچ و قطع کردن اینترنت و … ندارید. شاید برنامه کرک شده به ظاهر کار اصلی خودش را انجام بدهد، اما اینکه کرک آن برنامه در پشت پرده چه بلاهایی سر سیستمتان می آورد، به راحتی قابل تشخیص نیست. در نتیجه توصیه من این است که در صورتیکه برنامه رایگانی وجود دارد که امکانات و کیفیت قابل قبولی دارد، دلیلی ندارد که از برنامههای کرک شده استفاده کنید. مثلا خود من اصلا از این برنامهها ندارم و توی عکس هم مشخص نیست :)
با کلیک روی دکمه دانلود به صفحه دانلود ۷zip میروید. در صفحه دانلود لینکهای زیادی هست که در حالت معمول شما فقط با یکی از آنها کار خواهید داشت. ۳۲ بیت یا ۶۴ بیت؟ مساله این است. این ۳۲ و ۶۴ مربوط به معماری سیستم عاملتان میشود. در ویندوز اگر روی آیکن My Computer یا This Pc یا… راستکلیک کنید و Properties را انتخاب کنید، کادری باز میشود که اطلاعاتی در مورد سیستمتان نمایش میدهد. برای تشخیص ۳۲ یا ۶۴ بیت بودن ویندوزتان، به بخش System و قسمت System Type نگاهی بیاندازید. اگر سیستم عامل ۳۲ بیتی داشتید، باید نسخه ۳۲bit-x86 را دانلود کنید و در صورتیکه سیستم عاملتان ۶۴ بیتی است، بهتر است نسخه ۶۴bit-x64 را دانلود کنید.
بعد از پایان دانلود برنامه، آن را اجرا کنید. نصب این برنامه معصوم و مظلوم هیچ پیچیدگی خاصی ندارد :) روی دکمه Install کلیک میکنید و چند ثانیه منتظر میمانید تا نصب به پایان برسد، بعد روی دکمه Close کلیک میکنید. تمام شد.
حالا برنامه نصب شده و گزینههای لازم را به منوی راستکلیک شما افزوده است. تازه از زبان شیرین فارسی هم پشتیبانی میکند :) حالا کافیست در مرورگر ویندوز، همانطور که در عکس بالا هم مشخص است، فایلها و فولدرهای خود را انتخاب کنید و روی آنها راستکلیک کنید و این بار به جای گزینه Send to ، گزینه ۷zip که حالا باید به لیست اضافه شده باشد را انتخاب کنید. در زیرمنویی که باز میشود، گزینه “افزودن به آرشیو” یا “Add to Archive” را انتخاب کنید. کادری شبیه به کادر زیر نمایان میشود:
اگر همین حالا روی تایید کلیک کنید، یک فایل فشرده از نوع ۷z در همان مسیری که فایلهایتان را انتخاب کردهاید ایجاد میشود. اما بهتر است قبل از تولید فایل فشرده، یک تغییراتی ایجاد کنیم. مثلا میتوانید نوع فایل را به Zip تغییر بدهید. در لیست “فرمت آرشیو” گزینه Zip را انتخاب کنید. چرا؟ فرمت ۷z به طور کلی از فرمت Zip بهتر است، اما در صورتیکه قصد دارید این فایل فشرده برای دیگران ارسال کنید، آنها هم باید برنامه ۷Zip را روی سیستم خودشان داشته باشند تا بتوانند، فایلهای فشرده را استخراج کنند. همه هم که مثل شما با کمالات نیستند :) در نتیجه یا فرمت آرشیو را Zip انتخاب کنید یا لینک این مطلب تکـنامه را هم همراه با فایل ۷z برای دیگران بفرستید :) همانطور که قبلا اشاره کردیم، ویندوز بدون نصب هیچ برنامه جانبی، میتواند فایلهای Zip را باز و استخراج کند، و به همین دلیل در صورتیکه از شرایط کامپیوتر مقصد، بیاطلاع هستید، Zip گزینه مناسبی است.
البته یک راه دیگر هم وجود دارد و آن استفاده از “ایجاد آرشیو خود استخراجگر” است. متاسفانه بعضی عبارات بعد از ترجمه به فارسی، ترسناک میشوند :) این یکی هم جزو آنهاست. در صورتیکه تیک مربوط به این گزینه را فعال کنید، میتوانید از مزایای فرمت ۷z بهره ببرید، و در عین حال فایل فشردهای که تولید میکنید، روی سیستمهایی که ۷zip روی آنها نصب نیست نیز قابل استفاده خواهد بود. شیوه کار به این صورت است که فایل فشرده شما تبدیل به یک فایل اجرایی (exe) میشود که کاربران ویندوز، میتوانند روی آن دوکلیک کرده و مسیری را مشخص کنند تا فایلها در آن مسیر از حالت فشرده خارج بشوند. تنها نکته منفی قضیه این است که چون یک فایل اجرایی تولید میشود، سرویسدهنگان ایمیل (مثل جیمیل) اجازه ضمیمه کردن آنها را به شما نخواهند داد و باید پسوند فایل را قبل از ضمیمه کردن تعویض کنید و گیرنده هم بعد از دریافت باید پسوند فایل را تعویض کند…
میزان فشردهسازی هم یکی دیگر از گزینههایی است که ممکن است بخواهید تغییر دهید. هرچقدر میزان فشردهسازی بیشتری را انتخاب کنید، عملیات فشردهسازی بیشتر طول میکشد و در عوض فایل نهایی حجم کمتری خواهد داشت. البته اینها همه تئوری است و ممکن است در عمل، شاهد اتفاقات دیگری باشید :) ولی امتحان کردن ضرری ندارد.
میتوانید برای فایل فشرده خود کلمه عبور هم در نظر بگیرید تا دست اغیار را از اطلاعات خصوصی خود کوتاه کنید :) برای این کار میتوانید از قسمت رمزگذاری استفاده کنید و رمز موردنظر خود را دوبار تایپ کنید.
در این برنامه بعضی از امکانات و تنظیمات فشردهسازی فقط برای فرمت خاصی موجود هستند. مثلا “ایجاد آرشیو خود استخراجگر” فقط برای فرمت ۷z موجود است. یا امکان رمزگذاری برای فرمت آرشیو Tar وجود ندارد و …
یک تفاوت کوچک در زمینه رمزگذاری فایلها در فرمت Zip و ۷z وجود دارد که بد نیست آن را هم مطرح کنیم. در فرمت ۷z امکان رمزگذاری نام فایل وجود دارد که در فرمت Zip این گزینه غیب میشود :) اما این گزینه چه کاری انجام میدهد؟ وقتی شما فایلی را رمزگذاری میکنید، برای دسترسی به اطلاعات موجود در آن، باید رمز صحیح را وارد کنید. اما قبل از وارد کردن رمز هم میتوانید اسامی فایلهای فشرده شده را ببینید، انتخاب گزینه “رمزگذاری نام فایلها” اسامی فایلها را رمزنگاری میکند و در عمل با نمایش کادر دریافت رمز قبل از نمایش اسامی فایلها، راه هر نوع فضولی را بر فضولان میبندد :) به زبان ساده کسی که رمز فایل فشرده شما را نداشته باشد، حتی اسامی فایلهای موجود در فایل فشرده را هم نخواهد دید، چه برسد به خودشان :)
یک گزینه دیگر هم باقی مانده که شاید روزی روزگاری به درد بخورد و آن قابلیت تقسیم آرشیو به چند فایل است. اگر اهل دانلود فایلهای حجیم از اینترنت باشید، احتمالا به فایلهای چند تکه برخورده اید. مثلا هشت فایل ۱ گیگابایتی. در ۷zip میتوانید آرشیوهای حجیم خود را به چند قسمت تقسیم کنید. چرا؟ فرض کنید میخواهید تعداد زیادی فایل و فولدر را فشرده کنید و از آنها روی CD نسخه پشتیبان تهیه کنید. ظرفیت CD ها یا حتی فلشدیسک های شما، محدود است و باید به طریقی یک فایل بزرگ را به چند فایل کوچکتر تقسیم کنید. در قسمت “تقسیم به چند بخش” میتوانید مشخص کنید که فایل حجیمتان چگونه تقسیم بشود. در کادر لیستی، گزینههای از پیش تعریف شدهای که زیاد کاربرد دارند، وجود دارد. مثلا سایز مناسب برای انواع CD ,DVD و حتی Floppy مرحوم :) یک گزینه ۴ گیگابایتی هم وجود دارد که مربوط به محدودیت ۴ گیگابایتی سیستم فایل FAT است، و اگر زبانم لال درایو شما هنوز هم از این سیستم استفاده میکند و نمیتوانید فایلهای بزرگتر از ۴ گیگابایت را روی آن ذخیره کنید، این گزینه به دردتان میخورد :) اما در کنار همه این گزینهها میتوانید اندازه دلخواه خودتان را هم در کادر تایپ کنید. مثلا ۱M یعنی فایل فشرده به فایلهای ۱ مگابایتی تقسیم شود. فقط M را فراموش نکنید، چون واحد پیشفرض این قسمت بایت است…
یک فایل ۱ مگابایتی ۱۰۲۴ کیلوبایت است که خودش ۱۰۲۴ بایت است :) در نتیجه برای اینکه فایل فشرده خود را به قطعات ۱ مگابایتی تقسیم کنید باید عدد ۱,۰۴۸,۵۷۶ را تایپ کنید، یا همان M را به ۱ اضافه کنید :)
خب حالا که فایل فشرده خود را ایجاد کردید، میتوانید آن را یک گوشه نگه دارید و یا برای دیگران ارسال کنید. برای استفاده از فایل فشرده، میتوانید روی آن دوکلیک کنید تا ۷zip آن را برای شما باز کند، یا روی اسم فایل راستکلیک کنید و گزینه “استخراج فایلها” را برای استخراج در مسیر دلخواه، یا “استخراج در اینجا” برای استخراج فایلها در همان فولدری که هستید انتخاب کنید. یک گزینه “استخراج به اسم فولدر” هم ممکن است در لیست باشد که فایلهای فشرده را به فولدری با نام فایل فشرده استخراج میکند. مثلا اسم فایل فشرده شما technameh.7z است، این گزینه تمامی فایلهای درون فایل فشرده را در فولدر technameh ذخیره میکند.
در پایان این را هم بیافزایم که برنامههای فشرده سازی زیادی هستند که به طور رایگان یا پولی یا کرکی :) در اختیار شما هستند و اصول کاری همه آنها تقریبا شبیه هم هست. سون زیپ به لحاظ رایگان و منبعباز بودن و پشتیبانی از انواع مختلف فایلهای فشرده، برای مثال انتخاب شد. این برنامه حجم کمی دارد و به سرعت نصب میشود، و تقریبا بیشتر فایلهای فشردهای که با برنامههای فشرده سازی دیگر تولید شده اند، مثل RAR را باز میکند و همچنین موفق شده است در چندین بنچمارک معتبر نتایج بسیار خوبی در سرعت و نرخ فشرده سازی به دست بیاورد. حالا دیگر خود دانید :)
در سیستم عاملهای گوناگون، امکان فشردهسازی فضای دیسک نیز وجود دارد که باید در مطلب جداگانهای به آن پرداخت. در این حالت، فایلها و فولدرهای شما به یک فایل جداگانه فشرده تبدیل نمیشوند و فرایند فشردهسازی و استخراج به صورت لحظهای صورت میگیرد.
خیلیم عالی و بامزه :))
ممنان :))