2010-07-25 2 views
1

У меня есть приложение, которое использует изображение, снятое камерой и отправляет его в веб-службу. В настоящее время я помещаю изображение в байт [], который затем будет передан. Это делается с помощью:Растровое изображение <-> Преобразование JPEG

filename = cameracapturedialog.FileName; 
FileStream fs = new FileStream(filename, FileMode.Open); 
byte[] ImageByte = new byte[fs.Length]; //file to send 
fs.Read(ImageByte, 0, Convert.ToInt32(fs.Length)); 

Но теперь я хотел бы выполнить некоторую обработку (изменение размера), поэтому я должен был поместить изображение в растровый объект, и после обработки я преобразовать его обратно в JPEG.

Есть ли способ конвертировать JPEG в Bitmap, а затем обратно в JPEG без изменения в пикселях (для тестирования я не буду обрабатывать битмап)? Следовательно, если я сравниваю первый JPEG со вторым JPEG, мне нужно, чтобы файлы были точно такими же.

Как вы считаете, самое лучшее решение? Могу ли я использовать что-то другое вместо Bitmap. Любое предложение с некоторым кодом будет оценено по достоинству.

+0

http://stackoverflow.com/questions/41665/bmp-to-jpg-png-in-c – jgauffin

+0

спасибо, но не работаем на мобильном устройстве sdk :( – mouthpiec

ответ

0

Нет. Вы можете сохранить его с помощью Quality = 100, который будет почти, как и исходное изображение. Однако в результате файл будет огромный.

1

JPG - формат с потерями. Он ВСЕГДА потеряет информацию из-за того, как работает алгоритм кодирования. Таким образом, вы никогда не получите исходное изображение из jpg, независимо от того, какой кодировщик вы используете.

Смежные вопросы