Подтвердить что ты не робот

Преобразование байтового массива в PNG/JPG

В настоящее время я работаю над приложением, для которого требуется высокопроизводительное преобразование неаддированного байтового массива в PNG или JPEG. Формат изображения не имеет значения, до тех пор, пока он быстро.

Я пробовал библиотеки .NET, и производительность очень плохая. Может ли кто-нибудь рекомендовать для этого бесплатную бесплатную библиотеку?

EDIT: байт [] - это 8-битное растровое изображение в градациях серого

4b9b3361

Ответ 1

Вы должны сделать что-то вроде этого:

byte[] bitmap = GetYourImage();

using(Image image = Image.FromStream(new MemoryStream(bitmap)))
{
    image.Save("output.jpg", ImageFormat.Jpeg);  // Or Png
}

Посмотрите здесь для получения дополнительной информации.

Надеюсь, это поможет.

Ответ 2

Есть две проблемы с этим вопросом:

Предполагая, что у вас есть растровое изображение с серой шкалой, вы должны учитывать два фактора:

  • Для JPGS... какая потеря качества допустима?
  • Для pngs... какой уровень сжатия допустим? (Хотя для большинства вещей, которые я видел, у вас нет такого выбора, поэтому этот выбор может быть незначительным.) Для любого, кто думает, что этот вопрос не имеет смысла: да, вы можете изменить объем сжатия/количество проходов, пытавшихся сжать; проверьте либо Ifranview, либо некоторые из его плагинов.

Ответьте на эти вопросы, и тогда вы сможете найти свой оригинальный ответ.