Растровый объект .NET - PullRequest
       1

Растровый объект .NET

0 голосов
/ 21 марта 2012

Я сохранил изображение в виде BLOB (Varbinary (max)) в базе данных.Я закодировал изображение как .NET Bitmap TIFF.При отображении изображения на странице я могу установить тип контента в формате JPEG, GIF и т. Д., И изображение всегда правильно отображается на веб-странице.Я ожидаю, что изображение будет отображаться правильно, только если я установлю тип содержимого как TIFF (так как он был закодирован как TIF).Я использую класс Bitmap.Я что-то пропустил?

Вот некоторый код:

objCmd.CommandText = "SELECT Img FROM dbImage where id = 1
                dr = objCmd.ExecuteReader
                dr.Read()

                screenshot = CType(dr("screenshot"), Byte())
                Response.ContentType = "image/tiff"
                Response.BinaryWrite(screenshot)
                Response.Flush()
                Response.End()

Изображение BLOB было закодировано в формате TIFF.Однако при извлечении изображения оно будет отображаться в формате JPG и GIF.Например, если я изменил тип response.content на «image / jpg», он все равно отображается.Вопрос: почему он все еще отображается?У меня нет большого опыта работы с изображениями.

1 Ответ

0 голосов
/ 22 марта 2012

Причина, по которой он все еще отображается, заключается в том, что современные браузеры игнорируют заголовок типа контента для изображений (на основе наблюдения и тестирования, а не документации). Первые несколько байтов почти каждого изображения скажут вам, в каком они формате - я предполагаю, что браузеры (и графические библиотеки, которые они используют) смотрят на эти байты (так же, как и .NET) вместо того, чтобы полагаться на заголовок типа контента. 1001 *

Веб-сервер НЕ перекодирует изображение

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