Большой запрос при отправке изображения TIFF через SOAP - PullRequest
0 голосов
/ 18 февраля 2009

У нас есть WebService с методом загрузки изображений, этот метод принимает массив байтов в формате TIFF.

На стороне клиента TIFF загружается с Image.FromFile(path), а затем сохраняется в MemoryStream. Затем вызывается memoryStream.ToArray(), что приводит к массиву байтов, который используется в запросе WebService.

В настоящее время у нас есть TIFF размером 130 КБ, но общий размер запроса составляет почти 10 МБ. Как это может случиться? Это потому, что метод Image.FromFile конвертирует (дефлирует) TIFF в стандартный формат, поэтому сжатие и т. Д. Теряется? Есть ли лучший способ сделать это?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 18 февраля 2009

Загрузка TIFF в изображение снимает все сжатия TIFF.

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

1 голос
/ 18 февраля 2009

Возможно, вы можете использовать WSE 3.0 MTOM, ведь это лучший способ отправки изображений через веб-сервисы

Вы можете найти больше информации здесь

1 голос
/ 18 февраля 2009

Я не проверял, что то, что вы предлагаете (что Image распаковывает tiff в гораздо больший файл), действительно происходит, хотя это кажется вероятным. Но если это так, то не могли бы вы просто прочитать файл не как изображение, а как двоичный файл?

Просто прочитайте файл, как будто это бинарный файл, и поместите его в memoryStream. Тогда не должно быть никаких проблем с декомпрессией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...