Итак, я хотел обрезать квадратное прозрачное изображение (аватар) на белый круг (finalImage). У меня есть функция, которая работает на Windows, но не на Linux, и я понятия не имею, почему. Зависимости все в порядке, и это работало.
public static async Task<Bitmap> CropAvatarToCircle(SocketUser user)
{
Bitmap avatar = await CreateUserAvatarBitmap(user);
Bitmap finalImage = new Bitmap(AVATAR_SIZE, AVATAR_SIZE);
using (TextureBrush avatarTB = new TextureBrush(avatar))
{
using (Graphics gr = Graphics.FromImage(finalImage))
{
gr.SmoothingMode = SmoothingMode.AntiAlias;
gr.FillEllipse(Brushes.White, 0, 0, AVATAR_SIZE, AVATAR_SIZE);
gr.FillEllipse(avatarTB, 0, 0, AVATAR_SIZE, AVATAR_SIZE);
}
}
return finalImage;
}
Это создает белый круг без изображения над ним. Я отлаживал это некоторое время, и это не другая функция, это связано с TextureBru sh, потому что другие кисти работают, но не bru sh с изображением.
Любые идеи будут с благодарностью