Сжатие изображения байтового массива без масштабирования с использованием .Net C#

Я создаю приложение AngularJS, для службы я использую .NET С# для целей кодирования. Я получаю изображения с SQL Server в виде массива байтов, и я отправляю массив байтов в AngularJS, и он отображает изображение в HTML.

Я следовал тому же, что и в сообщении Загрузить изображение из массива байтов C# и поместить изображение в тег html с помощью AngularJS

Но я столкнулся с проблемой производительности в моих данных. Моя база данных содержит размер байтового массива ок. от 2 до 3 МБ. Итак, исходя из пропускной способности Интернета, он изо всех сил пытается загрузиться. Пожалуйста, помогите мне, как сжать массив байтов без масштабирования изображения?

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


person Community    schedule 28.07.2016    source источник
comment
Какого формата ваши изображения? джпег, пнг? Тогда вам не повезет, потому что эти форматы уже очень сильно оптимизированы с точки зрения размера.   -  person derpirscher    schedule 28.07.2016
comment
Я использую как .jpg, так и .png.   -  person    schedule 28.07.2016


Ответы (1)


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

При этом в статье, на которую вы ссылаетесь, изображения, похоже, отправляются по сети с сервера в виде строк Base64, что влечет за собой ужасные накладные расходы, поскольку увеличивается их размер. И чем больше изображения, тем больше накладных расходов, если вы используете Base64. Так что, если вы следовали советам в этой статье, вы не должны были этого делать. Вместо этого вы должны передавать изображения с вашего сервера в виде необработанных байтов в теле ответа и не использовать кодировку Base64. Затем просто используйте стандартные теги <img>, свойство src которых напрямую указывает на URL-адрес вашего сервера. Таким образом, в вашем приложении Angular ваша модель не должна состоять из нескольких строк base64, которые вы загрузили как запросы AJAX, а скорее массив URL-адресов, которые будут назначены соответствующему свойству src тегов изображений.

person Darin Dimitrov    schedule 28.07.2016
comment
не могли бы вы помочь мне, как связать Image Byte[] в <img src=" " />. Пожалуйста, помогите мне... - person ; 08.08.2016