string filePath = project.Variables["filePath"].Value; // путь к файлу из переменной проекта
string directory = project.Directory + @"\Temp\"; // директория нового файла
string newFilePath = directory + Path.GetFileName(filePath); // путь к новому файлу
// Проверяем существование директории
if (!Directory.Exists(directory))
// Если директория не существует, то создаём
Directory.CreateDirectory(directory);
// Создаем объект Image из файла с изображением
Image img = Image.FromFile(filePath);
// Задаем mime-тип (кодек изображения)
string mimeType = @"image/jpeg";
// Создаем объект, содержащий информацию о кодировке файла
ImageCodecInfo ici = null;
// Получаем кодеки для всех форматов изображений (Получаем список доступных кодеков)
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
// Находим нужный кодек изображения (image/jpeg)
foreach (ImageCodecInfo codec in codecs) {
if (codec.MimeType == mimeType)
ici = codec;
}
// Создаем объект с параметрами
EncoderParameters ep = new EncoderParameters(1);
// 100L (75L, 50L) - степень качества (чем меньше, тем меньше весит изображение и меньше качество)
ep.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 50L);
// Сохраняем изображение в заданной кодировке и с заданными параметрами
img.Save(newFilePath, ici, ep);
// Освобождаем все ресурсы, используемые объектом Image
img.Dispose();
// Возвращаем путь к новому файлу
return newFilePath;