نکات برنامه‌نویسی

نکات برنامه‌نویسی و رایانه‌ای - امیرمسعود ایرانی

نکات برنامه‌نویسی

نکات برنامه‌نویسی و رایانه‌ای - امیرمسعود ایرانی

۳ مطلب با کلمه‌ی کلیدی «فشرده‌سازی» ثبت شده است

آموزش فشرده سازی فایلها تا آخرین حد ممکن

امیرمسعود ایرانی | يكشنبه, ۸ اسفند ۱۳۹۵، ۰۷:۵۶ ب.ظ | ۰ نظر

فشرده سازی فایل‌ها بر اساس نوع محتوایی که داشته باشند با درصدهای مختلفی امکان‌پذیر است

برخی از انواع فایل‌ها به صورت پیش فرض فشرده هستند. از آن جمله می‌توا به فایل‌های jpg، gif، png، mkv، mp3 و بسیاری از انواع دیگر فایل‌های صوتی و تصویری و چندرسانه‌ای

این گونه از فایل‌ها چنانچه بخواهند با همان پسوند و کیفیت موجود، فشرده‌سازی شوند، معمولا نتیجه‌ی دلخواه به دست نخواهد آمد و برای رسیدن به حجم کمتر این فایل‌ها می‌بایست به فرمت‌هایی که فشرده نباشند یا از الگوریتم‌های فشرده‌سازی قوی‌تری بهره‌گیری می‌کنند استفاده شود.

فشرده سازی عمومی

فشرده سازی عمومی فایل‌ها برای گروهی از فایل‌ها با محتواهای مختلف مثلا یک نرم‌افزار کاربری که ۳۰۰ فایل در خود جای داده است، با استفاده از ابزارهای عمومی مانند 7Zip و WinRAR قابل انجام است.

تنظیمات انجام شده در این نرم‌افزارها می‌تواند اثر قابل توجهی روی حجم فایل نهایی بر جای بگذارد

افزایش قدرت فشرده‌سازی معمولا با کاهش سرعت در هنگام فشرده‌سازی و با افزایش مصرف حافظه در هنگام فشرده‌سازی و بازگشایی برجای خواهد گذاشت.

فشرده‌سازی مجموعه‌ی زیادی از فایل‌ها که محتوایی شبیه به هم دارند، اگر به صورت Solid به انجام برسد، باعث کاهش قابل ملاحظه‌ی حجم خروجی می‌شود.

برای مثال اگر تعداد ۵۰۰ فایل با پسوند txt به صورت Solid فشرده شوند، حجم فایل نهایی به مراتب کمتر از زمانی خواهد بود که این ۵۰۰ فایل به صورت عادی فشرده شوند. فشرده‌سازی Solid با یکی کردن فایل‌های متعدد، سبب می‌شود قدرت فشرده سازی افزایش یابد.

فشرده‌سازی فایل‌های تصویری

فایل‌های تصویر مانند jpg و png فایل‌هایی از پیش فشرده هستند. البته ممکن است فشرده سازی این فایل‌ها به خوبی انجام نشده باشد و با استفاده از ابزاری مانند File Optimizer که انواع مختلف روش‌های فشرده‌سازی را روی این فایل‌ها آزمایش می‌کند، بدون تغییر در کیفیت بتوانید به حجم‌هایی پایین‌تر دست پیدا کنید.

راه دیگر برای کاهش حجم فایل‌های تصویری مانند jpg، تبدیل نوع محتوای آن‌ها است. jpg یک فرمت نسبتا قدیمی و با الگوریتم‌های قدیمی است. با تبدیل این نوع تصویر به فرمت‌های جدیدتری مانند jpeg2000 و webp شرکت گوگل، با کمترین تغییر در کیفیت، حجم‌هایی به مراتب کمتر قابل دستیابی خواهد بود.

فشرده‌سازی فایل‌های صوتی

فایل‌های صوتی نیز اغلب فایل‌هایی فشرده هستند. همان گونه که در مورد فایل‌های تصویری گفته شد، فشرده‌سازی این گونه فایل‌ها بدون تغییر فرمت، تا حد قابل قبولی امکان‌پذیر نیست. به همین منظور استفاده از فرمت‌های جدیدتر مانند m4a و aac که توانایی دارند بدون کاهش قابل تشخیص کیفیت صوت، حجم‌هایی کمتر در اختیار شما قرار دهند، راه حل مناسب‌تری برای کاهش حجم این گونه فایل‌ها به شمار می‌رود.

فشرده‌سازی فایل‌های چندرسانه‌ای

فایل‌های چندرسانه‌ای نیز اغلب فایل‌هایی فشرده هستند و برای کاهش حجم آن‌ها می‌بایست فرمت داخلی آن‌ها تغییر کند، پسوند فایل‌های چندرسانه‌ای اغلب برای تشخیص نوع محتوای آن‌ها کفایت نمی‌کند. یک فایل با پسوند mp4 ممکن است حاوی محتویاتی با انواع بسیار متفاوت و فشرده‌سازی مختلف باشد. به همین منظور استفاده از ابزارهای تبدیل ویدئو مانند Freemake Video Converter می‌تواند روشی مناسب برای تبدیل محتوای داخلی این فایل‌ها و دستیابی به حجم‌هایی کمتر باشد.

هرچه ابعاد فریم‌های تصویر و تعداد فریم در ثانیه فایل ویدئویی کمتر باشد، امکان فشرده‌سازی به حجم‌هایی کوچکتر،‌بیشتر در دسترس قرار خواهد گرفت.

اطلاعات بیشتر در مورد فشرده‌سازی

برای کسب اطلاعات بیشتر در مورد فشرده‌سازی فایل‌های مختلف اینجا کلیک کنید.

  • امیرمسعود ایرانی

تهیه پشتیبان از فایل‌های پروژه با استفاده از 7Zip و MySQLDump

امیرمسعود ایرانی | چهارشنبه, ۱۲ فروردين ۱۳۹۴، ۰۲:۰۲ ق.ظ | ۰ نظر

اگر چه تهیه‌ی پشتیبان با استفاده از فشرده‌سازها حرفه‌ای و ایمن نیست، با این حال ممکن است در برخی موارد، گزینه‌ای مناسب و آسان باشد.

در چنین مواقعی، انجام تنظیمات و کلیک‌های پی‌در‌پی برای رسیدن به نتیجه، کاری زمان‌بر است.

برای افزایش سرعت و دقت، می‌توان از Batch File برای مکانیزه کردن فرآیند فشرده‌سازی فایل‌ها و پایگاه داده استفاده کرد.

در ادامه یک نمونه اسکریپت که از بانک اطلاعاتی و فایل‌های یک پروژه لاراول پشتیبان تهیه می‌کند را مشاهده می‌کنید:

@echo off
SET PATH=C:\wamp\bin\mysql\mysql5.6.12\bin\;C:\Program Files\7-Zip\
mysqldump.exe --skip-comments -u root azmoon > azmoon\db.sql
del "F:\Project\azmoon\www.7z"
7z a -x!azmoon\laravel\vendor -mx=9 "F:\Project\azmoon\www.7z" azmoon
pause
برای استفاده از اسکریپت بالا می‌بایست کدهای آن را در یک فایل bat در شاخه‌ی بالایی پروژه ذخیره کنید و پس از انجام تغییرات لازم در مسیرهای مشخص شده، آن را اجرا تا یک کپی از فایل‌های پروژه و بانک اطلاعاتی را در یک فایل فشرده در اختیار داشته باشید.

در ادامه به اختصار کارهای انجام شده را توضیح می‌دهم:
دستور echo off سبب می‌شود، دستورات اجرا شده در محیط خط فرمان چاپ نشوند و تنها خروجی به نمایش در آید.
دستور set path مسیرهای مقابل خود را در فهرست شاخه‌های عمومی درج می‌کند تا چنانچه بخواهیم یکی از فایل‌های موجود در این شاخه‌ها را اجرا کنیم، نیاز به تایپ مسیر کامل آن‌ها نباشد.
دستور mysqldump برای تهیه‌ی پشتیبان از یک پایگاه داده استفاده می‌شود. در این دستور از پایگاه داده‌ی azmoon با نام db.sql پشتیبان تهیه می‌کنیم.
دستور del برای حذف آخرین پشتیبان تهیه شده که در مسیر مقابل آن مشخص است به کار می‌رود.
دستور 7z نگارش خط فرمان نرم‌افزار 7Zip است که برای فشرده‌سازی مورد استفاده قرار گرفته است. در این دستور، ابتدا شاخه‌ی vendor را که حاوی کتابخانه‌های دانلود شده از اینترنت است و حاوی تعداد زیادی فایل است از نسخه‌ی پشتیبان استثنا می‌کنیم. سپس قدرت فشرده‌سازی را به حداکثر ممکن می‌رسانیم. و در پایان مسیر فایل پشتیبان که باید ساخته شود و شاخه‌ی فایل‌های پروژه را تعیین می‌کنیم.

با اجرا این دستور، پروژه و اسکریپت پایگاه داده در زمانی بسیار کوتاه به یک فایل فشرده تبدیل می‌شود.

در پایان یک بار دیگر یادآوری می‌شود که این روش برای نگهداری پشتیبان مناسب و ایمن نیست و فقط در موارد خاص یا در کنار روش‌های دیگر مانند استفاده از نرم‌افزارهای کنترل نسخه می‌تواند مورد استفاده قرار گیرد.
  • امیرمسعود ایرانی

کم کردن حجم عکس

امیرمسعود ایرانی | سه شنبه, ۲۵ شهریور ۱۳۹۳، ۰۵:۳۲ ب.ظ | ۰ نظر

کم کردن حجم تصاویر به دلایل مختل ممکن است صورت بگیرد.

بسته به نوع فرمت فایل تصویری و بسته به کیفیت مورد نیاز برای فایل خروجی، ابزارهای مختلف و تنظیمات گوناگونی مورد نیاز هستند.


ابتدا به روش کم کردن حجم فایل‌های png می‌پردازیم:

این فایل‌ها در ۳ نوع ۸ بیت، ۲۴ بیت و ۳۲ بیت وجود دارند. یک نوع دیگر که ممکن است در تمام نرم‌افزارها پشتیبانی نشود، نوع ۱۶ بیت آن است.

بهترین نرم‌افزار برای کاهش حجم این نوع تصاویر، بدون کاهش کیفیت آن‌ها PngOptimizer نام دارد.

برای دریافت این برنامه اینجا کلیک کنید

سایت‌های آنلاین و نرم‌افزارهای دیگر نیز برای انجام این کار وجود دارند. یکی از بهترین سایت‌ها که در هنگام فشرده‌سازی فایل‌های png با عمق رنگ ۳۲ بیتی به شما کمک می‌کند tinypng نام دارد. این سایت فایل‌های ۳۲ بیتی را به ۱۶ بیتی تبدیل می‌کند و در نتیجه کیفیت فایل خروجی کاهش پیدا می‌کند. در عوض حجم تصاویری که بخش‌های شفاف و نیمه‌شفاف زیادی دارند، مقدار قابل توجهی کم می‌شود.


برای کسب اطلاعات بیشتر در مورد فشرده‌سازی فایل‌های png اینجا کلیک کنید


فرمت متداول دیگر، JPEG است. برای فشرده‌سازی این فرمت، یکی از بهترین نرم‌افزارها XnView است.

برای دریافت این نرم‌افزار اینجا کلیک کنید

این نرم‌افزار علاوه بر فشرده‌سازی فایل‌های jpg توانایی نمایش صدها نوع فرمت صوتی و تصویری و ذخیره‌سازی چندین فرمت تصویری را در خود دارد.

علاوه بر آن نگارش خط فرمان این برنامه نیز، ابزاری مناسب جهت فشرده‌سازی خودکار از طریق خط فرمان است.


قطعا نرم‌افزارهای تخصصی و پیشرفته‌ی بسیاری برای کاهش حجم عکس‌ها وجود دارند. در این نوشته تنها به موارد رایگان دارای قابلیت‌های مفید پرداختیم

  • امیرمسعود ایرانی