سورس کد فشرده سازی تصویر
فشردهسازی تصویر با سیشارپ و ویژوال بیسیک داتنت: راهنمای جامع و کامل
در دنیای برنامهنویسی، مدیریت حجم فایلهای تصویری و کاهش فضای اشغال شده توسط آنها اهمیت زیادی دارد. یکی از راهکارهای مؤثر برای این هدف، استفاده از سورس کدهای فشردهسازی تصویر است که در زبانهای برنامهنویسی محبوبی مانند سیشارپ (C#) و ویژوال بیسیک داتنت (VB.NET) توسعه یافتهاند. در ادامه، به صورت مفصل و جامع، به مفهوم، روشها و نمونههای عملی در این حوزه میپردازیم.
اهمیت فشردهسازی تصویر
تصاویر، به ویژه تصاویر با رزولوشن بالا، حجم زیادی دارند. این حجم ممکن است بر سرعت انتقال دادهها، مصرف فضای ذخیرهسازی، و حتی کارایی برنامهها تأثیر منفی بگذارد. به همین دلیل، فشردهسازی تصویر، که شامل کاهش حجم فایل بدون کاهش قابل توجه کیفیت آن است، اهمیت فراوانی دارد. این فرآیند، هم در برنامههای دسکتاپ، هم در برنامههای وب و موبایل کاربرد دارد.
انواع فشردهسازی تصویر
در فشردهسازی تصویر، دو نوع اصلی وجود دارد:
- فشردهسازی بدون اتلاف (Lossless Compression): در این حالت، تصویر پس از فشردهسازی، دقیقا همان چیزی است که قبل از آن بود. یعنی، اطلاعات از دست نمیرود و کیفیت تصویر حفظ میشود. این روش برای تصاویر فنی، لوگو، و مواردی که دقت تصویر اهمیت دارد، مناسب است.
2. فشردهسازی با اتلاف (Lossy Compression): در این روش، بخشهایی از اطلاعات حذف میشود تا حجم کاهش یابد. نتیجه، کاهش قابل توجه حجم است، اما ممکن است کیفیت تصویر کمی کاهش یابد. این روش برای تصاویر عادی و عکسهای اینترنتی بسیار رایج است، که نیاز به حجم کم و سرعت بارگذاری دارند.روشهای فشردهسازی در زبانهای برنامهنویسی
در این حوزه، کتابخانهها و ابزارهای متعددی وجود دارند که فرآیند فشردهسازی و بازگشایی تصاویر را آسانتر میکنند. در زبانهایی مانند سیشارپ و VB.NET، کتابخانههای داخلی و خارجی زیادی برای این منظور وجود دارد.
فشردهسازی تصویر در سیشارپ (C#)
در سیشارپ، یکی از رایجترین روشها، استفاده از کلاسهای موجود در فضای نام `System.Drawing` و `System.IO` است. برای مثال، میتوانیم از کد زیر برای کاهش حجم تصویر و ذخیره آن به صورت فشرده استفاده کنیم:
csharp
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
public void CompressImage(string sourcePath, string destinationPath, long quality)
{
Bitmap bmp1 = new Bitmap(sourcePath);
ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg);
Encoder myEncoder = Encoder.Quality;
EncoderParameters myEncoderParameters = new EncoderParameters(1);
EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, quality);
myEncoderParameters.Param[0] = myEncoderParameter;
bmp- Save(destinationPath, jpgEncoder, myEncoderParameters);
}
private ImageCodecInfo GetEncoder(ImageFormat format)
{
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
foreach (ImageCodecInfo codec in codecs)
{
if (codec.FormatID == format.Guid)
{
return codec;
}
}
return null;
}
در این نمونه، با تنظیم مقدار `quality` بین 0 تا 100، می... ← ادامه مطلب در magicfile.ir
باکس دانلود (سورس کد فشرده سازی تصویر)
دانلود
پیشنهاد برای دانلود ( سورس کد فشرده سازی تصویر )
نظرات کاربران (۳)
مریم احمدی
عالی بود .. با تشکر