Я использую Croppic для обрезки, поворота и сохранения изображения. Но я не уверен, как сохранить изображение, если оно повернуто. Когда я сохраняю изображение, после поворота на 90 градусов, он по-прежнему сохраняется в исходной ориентации. Я подозреваю, что так я сохраняю изображение, но не уверен.Сохранение изображения, которое было повернуто
Вот мои методы сохранения обрезанного/повернутого изображения. Я предполагаю, что это то, как я сохраняю изображение, потому что в моей папке с файлами видно, что обрезанное изображение не вращается правильно, но обрезка была применена.
[HttpPost]
public string CroppedImage(string imgUrl, int imgInitW, int imgInitH, double imgW, double imgH, int imgY1, int imgX1, int cropH, int cropW)
{
var originalFilePath = Server.MapPath(imgUrl);
var fileName = CropImage(originalFilePath, imgInitW, imgInitH, (int)imgW, (int)imgH, imgY1, imgX1, cropH, cropW);
var result = new
{
status = "success",
url = "../Cropped/" + fileName
};
return JsonConvert.SerializeObject(result);
}
private string CropImage(string originalFilePath, int origW, int origH, int targetW, int targetH, int cropStartY, int cropStartX, int cropW, int cropH)
{
var originalImage = Image.FromFile(originalFilePath);
var resizedOriginalImage = new Bitmap(originalImage, targetW, targetH);
var targetImage = new Bitmap(cropW, cropH);
using (var g = Graphics.FromImage(targetImage))
{
g.DrawImage(resizedOriginalImage, new Rectangle(0, 0, cropW, cropH), new Rectangle(cropStartX, cropStartY, cropW, cropH), GraphicsUnit.Pixel);
}
string fileName = Path.GetFileName(originalFilePath);
var folder = Server.MapPath("~/Cropped");
string croppedPath = Path.Combine(folder, fileName);
targetImage.Save(croppedPath);
return fileName;
}
Контроллер входы определены здесь, и я вижу, что imgX1 и imgY1 имеют разные значения, если я поворачиваю. Я просто не знаю, как правильно его сохранить на C#.
Вы сказали, что сохранены в оригинальной ориентации. А как насчет урожая? Используется ли культура? – Ionut
Да применяется растение. Но вращение - нет. Я пытаюсь определить, способ ли я его сохранить или если это что-то с Кроппиком? – user1186050
Я вижу g.RotateTransform (90); но как узнать, было ли изображение повернуто? Единственная разница в данных, поступающих в контроллер, это данные imgX1/imgY1, и если я поворачиваю 90 град, я получаю значение 140/101, если я не вращаюсь, я получаю значения 15/70. – user1186050