У меня есть веб-приложение .NET Core 2.2, в котором я храню изображения пользователей в базе данных SQL Server.Когда я сохраняю файл как есть, он без проблем отображается на веб-странице.
После этого я хотел изменить размер изображения, когда пользователь загружает файл и устанавливает пакет Imagesharp и использует следующий код для изменения размера изображения.Код работает отлично, но когда пользователь входит в систему. Изображение не отображается.
Мой код для изменения размера и сохранения изображения в базе данных:
Методы обработки изображений
public Stream ResizeImage(Image<Rgba32> sourceImage, int destHeight, int destWidth)
{
sourceImage.Mutate<Rgba32>(ctx => ctx.Resize(destWidth,destHeight));
Stream outputStream = new MemoryStream();
sourceImage.Save(outputStream, new JpegEncoder());
return outputStream;
/*return sourceImage.
.Crop(new Rectangle(sourceX, sourceY, sourceWidth,
sourceHeight))
.Resize(destinationWidth, destinationHeight);*/
}
Мой код для хранения изображения:
if (ModelState.IsValid)
{
if (ProfileImage != null)
{
var stream = ProfileImage.OpenReadStream();
Image<Rgba32> theimage = _imageProcessor.GetImageFromStream(stream);
var outstream = _imageProcessor.ResizeImage(theimage, 100, 100);
//Input.Image = commonData.ConvertToBytes(ProfileImage);
Input.Image = commonData.ConvertStreamToBytes(outstream);
}
var user = new ApplicationUser
{
UserName = Input.Email,
Email = Input.Email.ToLower().Trim(),
FirstName = Input.FirstName,
LastName = Input.LastName,
Image = Input.Image,
AccountDisabled = true
};
}
Я пытаюсь отобразить изображение в формате html после преобразования его в строку base64 следующим образом:
userView.UserImageBytes = new string(Convert.ToBase64String(userView.TheUser.Image));
Моя HTML-разметкадля отображения изображения:
<img src="data:image/jpg;base64,@Model.UserImageBytes" alt="No Image" />
Приведенный выше код работает нормально, но сохраненное изображение не отображается.
Как правильно отобразить изображение.Любая помощь приветствуется.