У меня есть приложение, написанное с использованием C#
вверху в ASP.NET MVC 5 framework.
Я пытаюсь использовать WebImage , чтобы обрезать изображение, которое у меня есть на диске. В графическом интерфейсе я использую плагин Jcrop , чтобы позволить пользователю пометить область, которую он хочет обрезать или сохранить. Как вы можете видеть, плагин Jcrop предоставляет мне X1, X2, Y1 и Y2, которые идентифицируют местоположение конечного изображения для сохранения. Jcrop также предоставляет мне окончательную высоту и ширину конечного изображения, хотя они также могут быть рассчитаны по следующей формуле W = X2 - X1
; H = Y2 - Y1
Вот мой метод, в котором я обрезаю данное изображение и переопределяю его.
/// <summary>
/// Crop the given image and overrides it with the cropped image
/// </summary>
/// <param name="filename">The full path of the image and the location of the new image</param>
/// <param name="top">Y or Y1</param>
/// <param name="left">X or X1</param>
/// <param name="bottom">Y2</param>
/// <param name="right">X2</param>
/// <returns></returns>
public WebImage CropAndSave(string sourcePath, int top, int left, int bottom, int right)
{
byte[] imageBytes = File.ReadAllBytes(sourcePath);
var image = new WebImage(imageBytes)
{
FileName = ExtractFileName(sourcePath)
};
WebImage croppedImage = image.Crop(top, left, bottom, right);
croppedImage.Save(sourcePath, "jpg", true);
return croppedImage;
}
Однако обрезанное изображение - это не то, что я ожидаю. Это очень маленькое изображение, а не то, которое хочет сохранить пользователь.
Как я могу использовать WebImage.Crop(...)
, чтобы правильно обрезать изображение?