Я пытаюсь повернуть (вокруг его центра) и поместить изображение поверх другого изображения.
После поворота координаты XY, в которых я ожидал, все неверно.
Пример того, как это сделать, будет очень полезен
В настоящее время я рисую отладочные кадры вместо изображения.
Моя система координат основана на центральной позиции размещения, но яможет переключиться на верхний левый для координат XY
private static void DrawDebugFrames(List<LogoPlacementContentDto> placements, Image<Rgba32> mutatedImage)
{
foreach (var placement in placements)
{
var width = placement.Width;
var height = placement.Height;
using (var logo = new Image<Rgba32>(Configuration.Default, width, height))
{
var centerX = placement.X; // center of imagePlacement
var centerY = placement.Y; // center of imagePlacement
var affineBuilder = new AffineTransformBuilder();
affineBuilder.PrependTranslation(new Vector2(centerX, centerY));
affineBuilder.PrependRotationDegrees(placement.Rotation);
logo.Mutate(
x => x
.BackgroundColor(Rgba32.Beige).DrawPolygon(
Rgba32.HotPink,
4,
new Vector2(0, 0),
new Vector2(width, 0),
new Vector2(width, height),
new Vector2(0, height)
)
.Transform(affineBuilder)
);
mutatedImage.Mutate(
x => x
.DrawImage(logo, new Point(-(width / 2), -(height / 2)), GraphicsOptions.Default)
);
}
}
}
(Изображение) Ожидаемый результат (редактор)
(Изображение) Результат