У меня Bitmaps с соотношением сторон, как следующее или могут быть в любой пропорции ..Обрезка растрового изображения до 1: 1 Соотношение сторон
Когда пользователь указывает option Мне нужен способ обрезать окружающие части с этих изображений, чтобы получить изображение с соотношением сторон 1: 1. Как это
Я думаю, что я возьму центральную точку в этих изображениях и вырежьте стороны ..
Я нашел этот метод в веб-платформе .. но Bitmap не имеет метод Crop
public static WebImage BestUsabilityCrop(WebImage image, decimal targetRatio)
{
decimal currentImageRatio = image.Width/(decimal)image.Height;
int difference;
//image is wider than targeted
if (currentImageRatio > targetRatio)
{
int targetWidth = Convert.ToInt32(Math.Floor(targetRatio * image.Height));
difference = image.Width - targetWidth;
int left = Convert.ToInt32(Math.Floor(difference/(decimal)2));
int right = Convert.ToInt32(Math.Ceiling(difference/(decimal)2));
image.Crop(0, left, 0, right);
}
//image is higher than targeted
else if (currentImageRatio < targetRatio)
{
int targetHeight = Convert.ToInt32(Math.Floor(image.Width/targetRatio));
difference = image.Height - targetHeight;
int top = Convert.ToInt32(Math.Floor(difference/(decimal)2));
int bottom = Convert.ToInt32(Math.Ceiling(difference/(decimal)2));
image.Crop(top, 0, bottom, 0);
}
return image;
}
Пожалуйста, советы способ решения этого вопроса.
Существует перегрузка DrawImage, которая принимает исходный прямоугольник. Используйте это для рисования в целевом растровом изображении! – TaW
Вы просите преобразовать прямоугольник изображения в квадрат? –
@IvanStoev да .. вид – techno