Преобразование байтового массива в PNG/JPG
В настоящее время я работаю над приложением, для которого требуется высокопроизводительное преобразование неаддированного байтового массива в PNG или JPEG. Формат изображения не имеет значения, до тех пор, пока он быстро.
Я пробовал библиотеки .NET, и производительность очень плохая. Может ли кто-нибудь рекомендовать для этого бесплатную бесплатную библиотеку?
EDIT: байт [] - это 8-битное растровое изображение в градациях серого
Ответы
Ответ 1
Вы должны сделать что-то вроде этого:
byte[] bitmap = GetYourImage();
using(Image image = Image.FromStream(new MemoryStream(bitmap)))
{
image.Save("output.jpg", ImageFormat.Jpeg); // Or Png
}
Посмотрите здесь для получения дополнительной информации.
Надеюсь, это поможет.
Ответ 2
Есть две проблемы с этим вопросом:
Предполагая, что у вас есть растровое изображение с серой шкалой, вы должны учитывать два фактора:
- Для JPGS... какая потеря качества допустима?
- Для pngs... какой уровень сжатия допустим? (Хотя для большинства вещей, которые я видел, у вас нет такого выбора, поэтому этот выбор может быть незначительным.) Для любого, кто думает, что этот вопрос не имеет смысла: да, вы можете изменить объем сжатия/количество проходов, пытавшихся сжать; проверьте либо Ifranview, либо некоторые из его плагинов.
Ответьте на эти вопросы, и тогда вы сможете найти свой оригинальный ответ.
Ответ 3
Мне нравится Imagemagick.
http://www.imagemagick.org/script/api.php