Я сохраняю как высокое разрешение, так и сжатую версию изображения с высоким разрешением в базе данных.Дисплей с высоким разрешением изображения
Когда пользователь запрашивает изображение с высоким разрешением, мне нужно отобразить это еще сжатое. вот мой код.
Проблема заключается в том, что когда я установил этот байтовый массив изображений в поток и растровое изображение, размер файла сжат с 2,27 МБ до 339 КБ.
Что я здесь делаю неправильно?
private void DisplayImageFromBytes(byte[] byteArray, int resizeWidth, bool isHiResImage) {
if (isHiResImage)
{
Stream stream = new MemoryStream(byteArray);
System.Drawing.Image img = System.Drawing.Image.FromStream(stream);
Bitmap bitmap = null;
if (resizeWidth > 0 && img.Width > resizeWidth)
{
int newHeight = (int)((float)img.Height * ((float)resizeWidth/(float)img.Width));
bitmap = new Bitmap(img, resizeWidth, newHeight);
}
else
{
bitmap = new Bitmap(img);
}
Response.ContentType = "image/Jpeg";
bitmap.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
stream.Dispose();
img.Dispose();
bitmap.Dispose();
}
else
{
DisplayImageFromBytes(byteArray, resizeWidth);
}
}
SO делает ваш формат изображения с высоким разрешением Jpeg? – Rezoan
да .. в настоящее время любой тип изображения может быть загружен! – Aruna
Вы используете тот же формат изображения для всего изображения, которое вам попало. Просто попробуйте использовать img.RawFormat insted of System.Drawing.Imaging.ImageFormat.Jpeg. в bitmap.Save(); и посмотреть, работает ли это для вас. – Rezoan