Я нашел несколько похожих вопросов по SO и в других местах, но ничего, что вполне соответствует тому, что я ищу (или, может быть, я просто слишком туп, чтобы соединить точки!)
I 'Я хочу вернуть уменьшенное изображение из полноразмерного изображения, хранящегося в базе данных как varbinary (max).Я буду использовать эскизы в виде галереи, поэтому малый размер / эффективная загрузка имеют решающее значение.Я использую .ashx, чтобы вернуть полноразмерное изображение в связанный элемент управления asp.net Image со следующим кодом:
Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
Dim conn As New SqlConnection()
conn.ConnectionString = *connectionstring*
Dim cmd As New SqlCommand()
cmd.Connection = conn
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "GetEmplHeadShot"
Dim emplID As New SqlParameter("@emplID", context.Request.QueryString("emplid"))
cmd.Parameters.Add(emplID)
conn.Open()
Dim myReader As SqlDataReader = cmd.ExecuteReader
If myReader.Read Then
context.Response.BinaryWrite(myReader("HeadShot"))
context.Response.ContentType = "image/jpeg"
End If
myReader.Close()
conn.Close()
End Sub
Я понимаю, что, вероятно, лучше всего обратиться к изменению размера назагрузить и сохранить меньшее изображение в виде отдельного столбца. Но тем временем можно ли запрограммировать обработчик для изменения размера изображения на лету? В идеале, я бы мог передать дополнительный параметр строки запроса, что-то вроде isResized из привязки изображения, позволяя использовать один и тот же обработчик для полноразмерных и измененных размеров изображений.
Любой совет / помощь будет принята с благодарностью.Идеи об альтернативных подходах (то есть, «вы все делаете неправильно») также были бы очень кстати.