2016-09-16 3 views
0

Привет Я надеюсь, что кто-то может помочь мне указать мне в правильном направлении, как я могу решить эту проблему.масштаб и рисовать изображение внутри холста lager

У меня есть пустое изображение (белое), которое составляет 3000x1500, которое действует на холсте, и у меня есть изображение, которое снова может быть любого размера и любой ориентации. То, что мне нужно сделать, - это масштабировать это изображение, чтобы как можно лучше вписаться в чистый белый холст, а также сосредоточить его. Я бы ожидал увидеть белые зазоры в верхней или нижней части финального изображения, если изображение не может быть масштабировано для фиксации точного холста.

Может ли кто-нибудь предложить то, что я должен исследовать, как я буду рисовать изображение внутри другого в C# WPF и все, что может уже существовать, что я мог бы использовать для достижения этого.

Я забыл упомянуть, что это потребуется для вывода растрового изображения, так что может быть сохранено на диск

ответ

0

Посмотрите ViewBox. ViewBox автоматически масштабирует свой единственный дочерний элемент, основанный на параметре растяжения.

0

Все, что вам нужно сделать, это установить элемент управления изображением в сетку соответствующего размера на белом фоне и установить ее Stretch на Uniform. Нет необходимости в Viewbox.

<Grid Width="3000" Height="1500" Background="White"> 
    <Image Source="<path to image file>" Stretch="Uniform"/> 
</Grid> 
+0

Я забыл упомянуть, что мне понадобится это для экспорта в jpeg, поэтому это нужно будет сделать в коде позади. Обновил мой вопрос – NathanJ

+0

Вы можете нарисовать Grid на RenderTargetBitmap. – Clemens

Смежные вопросы