2014-01-23 2 views
0

Мне нужно обрезать и изменять размер изображения в приложении WPF, как только загрузится изображение. Итак, у моего Basic Image есть размер VGA (640x480), и мне нужно обрезать края (сверху на 18 пикселей, снизу на 36 пикселей, слева на 48 пикселей и справа на 24 пикселя). Новое изображение (которое составляет 568 x 426 пикселей) Необходимо переоборудовать в исходный размер (640 x 480 пикселей) - в основном это похоже на цифровой zoomc, который мы используем в фотографии.Автоматически обрезать и изменять размер изображения

Я уже нашел пример кода (Cropping whitespace from image in C#) - это, однако, немного слишком сложно, так как мне не нужно обнаруживать пробелы на изображении. Есть ли простой алгоритм, просто используя XAML для этого?

Заранее спасибо.

+0

Вы говорите о визуальном изменении изображения в пользовательском интерфейсе или изменении фактического файла изображения? – Sheridan

+0

Привет, нет. Я просто хочу изменить изображение в пользовательском интерфейсе. Фактическое изображение не должно изменяться. Есть ли простой код для этого? – user2754279

ответ

1

Я думаю, что вы должны быть в состоянии сделать это с помощью Viewbox Class. На связанной странице: Определяет декоратор контента, который может растягивать и масштабировать один дочерний элемент, чтобы заполнить свободное пространство. Вы буквально добавьте в свой Window и установить Image как содержание, а затем вы можете установить свойства для управления, какая часть изображения отображается:

<ViewBox Width="500" Height="500" Stretch="Uniform"> 
    <Image Source="Images/SomeImage.jpg" Width="300" Height="300" 
     Margin="-48,-18,-36,-24" /> 
</ViewBox> 

Эксперимент с различными StretchDirection значениями и установите Margin к отрицательным значениям урожай. На связанной странице есть примеры, но дайте мне знать, если вам нужна дополнительная помощь.

+0

Как я могу обрезать изображение на заданное расстояние (вверху на 18 пикселей, снизу на 36 пикселей, слева на 48 пикселей и на 24 пикселя)? После урожая, я думаю, я могу использовать 'Stretch', чтобы изменить его размер. – user2754279

+0

Это хороший момент ... Я рассмотрю это или подумаю о чем-то другом. – Sheridan

+0

Вы можете установить отрицательные значения «Margin» для обрезки «Image» ... см. Мой отредактированный пример. – Sheridan

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