После прочтения некоторых комментариев возникает реальный вопрос: как отобразить анимированную последовательность изображений в электронном письме?
Вам почти никогда не разрешают запускать JavaScript внутри почтовых клиентов, и даже если вы можете, поддержка может сильно различаться между клиентами, и клиенты веб-почты могут испортить ситуацию. Так что эта опция была исключена.
Аналогичным образом Flash / Silverlight вряд ли будут иметь хорошую поддержку почтовых клиентов и требуют установки плагина для браузера, что может быть невозможно из-за некоторых программ-клиентов электронной почты для настольных компьютеров. Так что эта опция была исключена.
Итак, у нас остались анимированные GIF-изображения. Этот формат очень давно поддерживается в интернете. Однако вам нужно помнить две вещи:
- Большинство почтовых клиентов теперь блокируют изображения (фактически все внешние ресурсы), пока пользователь явно не нажмет «показать изображения и ссылки».
или что-то подобное в их почтовом клиенте. Это значит его еще
Не гарантировано, что они увидят ваше изображение. Возможно, вы сможете вставить анимированный GIF в электронное письмо при его отправке, но тогда вы откажетесь от возможности получать последнюю информацию в анимации. ( т. Е. Я мог бы не читать вашу электронную почту в течение недели, если изображение было внедрено, это уже недельная социальная новость, если для его внешнего URL-адреса я бы не стал нажимать «показать изображения» )
- Анимированные GIF-файлы используют 256-цветовую палитру, поэтому вы не можете фотографировать
анимации с фотографическим качеством. Хотя этот вопрос появляется
быть о отображении в основном текстового контента, выписывая последние социальные
взаимодействия (твиты / посты), поэтому мы должны быть в порядке.
Предполагая, что эти условия подходят для вашего приложения, нам нужно выяснить, как создать анимированный GIF-код в коде HttpHandler, который вы разместили в вопросе. Это не новая идея, нам не нужно заново изобретать колесо. Есть и другие сообщения о stackoverflow здесь:
Наиболее оправданный ответ в первом посте stackoverflow выглядит для меня вполне разумно:
HOWTO: создать анимированный GIF-файл с помощью .Net (C #)
Этот метод не зависит от каких-либо внешних библиотек и имеет некоторые комментарии, объясняющие различные поля заголовка. В вашем случае вас заинтересует байтовый массив buf3 в этом коде, который является заголовком для каждого кадра. Здесь вы можете установить задержку для каждого отображаемого изображения. Вы, вероятно, выиграете от быстрого поиска в Google по анимированным спецификациям GIF, который будет отображаться:
Спецификации позволят вам точно узнать, что делает каждое поле заголовка. Если у вас нет желания изучать заголовки в GIF, то, возможно, просто вернитесь к чьей-то реализации, например: Кодер NGif в CodeProject . Конечно, вы всегда будете иметь больший контроль над процессом, если у вас будет более глубокое понимание того, как он работает. Даже если вы используете чью-то реализацию, полезно понять, что происходит за кулисами.