Преобразование между типами файлов изображений в c#

#c# #asp.net

#c# #asp.net

Вопрос:

На моем веб-сайте я получаю файлы изображений для загрузки. Я принимаю файлы типа jpg, png, bmp или gif. Если пользователь загружает jpg, png или gif, я хочу сохранить файл с сохранением типа файла, но если пользователь загружает bmp, я хочу преобразовать его в png.

У меня есть заглушка метода, подобная этой:

 private void profileImgUpload(HttpPostedFile profileImg)
 

HttpPostedFile имеет метод saveAs для сохранения файла или свойство InputStream для получения потока для работы.

В предыдущей реализации кто-то написал это:

 String[] allowedExtensions = { ".png", ".jpeg", ".jpg", ".gif" };
for (int i = 0; i < allowedExtensions.Length; i  )
    {
        if (FileExtension == allowedExtensions[i])
            FileOK = true;
    }
}

if (FileOK)
    profileImg.SaveAs(physicalPath   "newAvatarTemp.png");
 

Я предположил, что это просто приводит к сохранению файла с именем newAvatarTemp.png , но фактический тип кодировки не изменяется.

Комментарии:

1. Нет, он будет автоматически преобразован и сохранен в формате .png, если вы сохраните его таким образом.

Ответ №1:

Похоже, вы не конвертируете изображение, вы просто меняете расширение.

Если вы действительно хотите конвертировать, проверьте это:

http://msdn.microsoft.com/en-us/library/9t4syfhh.aspx