Я пытаюсь повернуть изображение с помощью ImageSharp.
Это мой код .NET Core API:
public async Task<IActionResult> Rotate([FromBody] PhotoRotateViewModel model)
{
var photo = await _photoRepository.Get(model.PhotoId);
if (photo != null)
{
byte[] imageBytes;
HttpWebRequest imageRequest = (HttpWebRequest)WebRequest.Create(photo.imageUrl);
WebResponse imageResponse = imageRequest.GetResponse();
Stream responseStream = imageResponse.GetResponseStream();
using (BinaryReader br = new BinaryReader(responseStream))
{
imageBytes = br.ReadBytes(500000);
br.Close();
}
responseStream.Close();
imageResponse.Close();
var rotatedImage = RotateImage(imageBytes);
}
return Ok();
}
private byte[] RotateImage(byte[] imageInBytes)
{
using (var image = Image.Load(imageInBytes, out var imageFormat))
{
image.Mutate(x => x.Rotate(90));
return ImageToByteArray(image, imageFormat);
}
}
private byte[] ImageToByteArray(Image<Rgba32> image, IImageFormat imageFormat)
{
using (var ms = new MemoryStream())
{
image.Save(ms, imageFormat);
return ms.ToArray();
}
}
Похоже, новое изображение обрезается.
Я приложил свое исходное изображение и результат, который я получил
Оригинал:
повернутый:
Это, кажется, происходит со всеми изображениями, которые я пробовал