Я ищу логику Image FILL для применения в моем консольном приложении, которое генерирует файл TIFF. У меня размер контейнера изображения как 1200 *1800* 1002 * пиксель.
Применяли приведенную ниже логику, чтобы изменить размер изображения, чтобы оно соответствовало этому размеру, но эта логика применяет часть FIT, а не часть FILL.
Если у меня размер изображения как 1200 *1600* 1008 *, то я получаю пустое пространство внизу, и если я пытаюсь разместить изображение в контейнере, то оно растягивается, и изображение выглядит не очень хорошо. Изображение выше 1200 *1600* 1010 * подходит хорошо.
Я ищу логику, аналогичную " Stretch.Uniform " приложения WPF, которая заполняет изображение равномерно, не теряя фактический вид изображения.
private static Dimension getScaledDimension(Dimension imgSize, Dimension boundary)
{
int original_width = imgSize.width;
int original_height = imgSize.height;
int bound_width = boundary.width;
int bound_height = boundary.height;
int new_width = original_width;
int new_height = original_height;
// first check if we need to scale width.
if (original_width > bound_width)
{
//scale width to fit
new_width = bound_width;
//scale height to maintain aspect ratio
new_height = (new_width * original_height) / original_width;
}
// then check if we need to scale even with the new height.
if (new_height > bound_height)
{
//scale height to fit instead
new_height = bound_height;
//scale width to maintain aspect ratio
new_width = (new_height * original_width) / original_height;
}
return new Dimension { height = new_height, width = new_width };
}