برای این منظور از کلاس System.Drawing.Imaging.ImageCodecInfo بهره می گیریم و متدهای زیر را به پروژه خوداضافه کرده و از آنها استفاده می نماییم.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
public static void ImageQualityLevel()
{
var bitmap = new System.Drawing.Bitmap(@"C:\TestPhoto.bmp");
var imageEncoder = GetEncoder(System.Drawing.Imaging.ImageFormat.Jpeg);
var encoderType = System.Drawing.Imaging.Encoder.Quality;
var encoderParameters = new System.Drawing.Imaging.EncoderParameters(1);
var imageQuality = 50L;
var parameter = new System.Drawing.Imaging.EncoderParameter(encoderType, imageQuality);
encoderParameters.Param[0] = parameter;
bitmap.Save(@"C:\TestPhotoQualityFifty.bmp", imageEncoder, encoderParameters);
bitmap.Dispose();
}
private static System.Drawing.Imaging.ImageCodecInfo GetEncoder(System.Drawing.Imaging.ImageFormat format)
{
var codecs = System.Drawing.Imaging.ImageCodecInfo.GetImageDecoders();
foreach (var codec in codecs)
{
if (codec.FormatID == format.Guid)
{
return codec;
}
}
return null;
}
|
حالا کافیست مسیر فایل اصلی را مشخص کرده و از طریق متغیر imageQuality میزان کیفیت
تصویر ایجاد شده نسبت به تصویر اصلی را مشخص کنیم. این مقدار باید بین 0 تا 100
باشد.
همچنین برای کاهش حجم تصویر می توان از Encoderهای مختلفی مثل
Bmp، Gif، Png، Tiff و Jpeg استفاده کرد.
اما بهترین فشرده سازی معمولا توسط Jpeg صورت می گیرد و ما هم در متد ImageQualityLevel از این Encoder استفاده کرده ایم. در نهایت فایل تصویر فشرده
سازی شده را در محل دلخواه و با فرمت مدنظر ذخیره می نماییم.
برای دریافت اطلاعات بیشتر می توانید به وب سایت مایکروسافت مراجعه نمایید.