Tôi có một hình ảnh ở dạng System.Drawing.Bitmap
và hình chữ nhật ở dạng 4 điểm (Vector2
s được chuyển đổi trivially thành PointF
s).Làm thế nào để cắt một hình ảnh với một hình chữ nhật xoay?
Tôi muốn sử dụng các điểm đó để cắt ra một phần của hình ảnh. Tôi tìm thấy this answer mà là khá gần với những gì tôi muốn, nhưng tôi không chắc chắn làm thế nào để có được ma trận bên phải ra khỏi nó.
Đây là những gì tôi đã có cho đến nay:
protected static Bitmap CropImage(Bitmap src, Vector2[] rect)
{
var width = (rect[1] - rect[0]).Length;
var height = (rect[3] - rect[0]).Length;
var result = new Bitmap(M2.Round(width), M2.Round(height));
using (Graphics g = Graphics.FromImage(result))
{
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
using (Matrix mat = new Matrix())
{
// ????
}
}
return result;
}
Làm thế nào tôi có thể nhận được các biến đổi ma trận thích hợp ra khỏi rect của tôi?
Tôi đã nghĩ ra một thứ khá giống, nhưng nó hơi lệch. – mpen