فشردهسازی تصاویر با سی شارپ
فشردهسازی تصاویر یکی از تکنیکهای مهم در بهینهسازی فضای ذخیرهسازی و افزایش سرعت بارگذاری وبسایتها میباشد. در زبان برنامهنویسی سی شارپ، فشردهسازی تصاویر به سادگی و با استفاده از کتابخانههای مختلف انجام میشود. در ادامه، به بررسی روشهای مختلف فشردهسازی تصاویر خواهیم پرداخت.
روشهای فشردهسازی
فشردهسازی میتواند به دو صورت انجام شود: فشردهسازی بدون افت کیفیت و فشردهسازی با افت کیفیت. در فشردهسازی بدون افت کیفیت، اطلاعات تصویر حفظ میشود، اما در فشردهسازی با افت کیفیت، ممکن است کیفیت تصویر کاهش یابد.
کتابخانههای مفید
برای فشردهسازی تصاویر در سی شارپ میتوانید از کتابخانههایی مانند `System.Drawing` و `ImageSharp` استفاده کنید. این کتابخانهها ابزارهای متعددی برای کار با تصاویر فراهم میکنند.
کد نمونه
در اینجا یک کد ساده برای فشردهسازی تصویر با استفاده از `System.Drawing` آورده شده است:
```csharp
using System.Drawing;
using System.Drawing.Imaging;
public void CompressImage(string inputFile, string outputFile, long quality)
{
using (var image = Image.FromFile(inputFile))
{
var encoderParameters = new EncoderParameters(1);
encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, quality);
var jpegCodec = GetEncoder(ImageFormat.Jpeg);
image.Save(outputFile, jpegCodec, encoderParameters);
}
}
private ImageCodecInfo GetEncoder(ImageFormat format)
{
var codecs = ImageCodecInfo.GetImageDecoders();
foreach (var codec in codecs)
{
if (codec.FormatID == format.Guid)
{
return codec;
}
}
return null;
}
```
توضیحات کد
در این کد، ابتدا تصویر را بارگذاری میکنیم. سپس با استفاده از `EncoderParameters` و تعیین کیفیت، تصویر را ذخیره میکنیم. `GetEncoder` برای دریافت کدک JPEG استفاده میشود.
نتیجهگیری