我正在尝试使用 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();
}
}
看起来新图像被切断了。
我附上了我的原始图像,以及我得到的结果
原来的:
旋转:
这似乎发生在我尝试过的所有图像上