2013-07-19 4 views
0


У меня есть несколько изображений, каждое изображение размещено в writeablebitmap. Каждое изображение представляет собой один слой, каждое изображение содержит прозрачность. Мне нужно объединить эти изображения в один алгоритм комбинирования: показать первое изображение (без изменений), после этого нарисуйте второе изображение, сперва, с дополнительной прозрачностью X%, после него третье изображение с дополнительной прозрачностью Y% и т. Д. Для работы i использовать фреймворк 4.5, язык программирования C# и VS2012.
Спасибо за помощь.Объединить несколько изображений в один

+0

Каков желаемый результат? Вы хотите показывать это только на экране или также сохранять в файл изображения? Вы еще что-нибудь пробовали? – Clemens

+0

результат нужен только для отображения, я нашел только один хардкорный способ, вычислить результат цвета из программы, но я думаю, что wpf может сделать это лучше и быстрее –

+0

Не могли бы вы просто наложить три элемента управления изображениями с соответствующими значениями «Непрозрачность»? – Clemens

ответ

1

Вы можете динамически создавать Image элементы управления в коде и добавлять их в коллекцию Grid или какую-либо другую панель Children.

В качестве альтернативы вы можете использовать сетку, как ItemsPanel в качестве ItemsControl и привязать ItemsSource свойство к коллекции объектов, имеющих Image и Opacity propetrty:

<ItemsControl ItemsSource="{Binding ImageItems}"> 
    <ItemsControl.ItemsPanel> 
     <ItemsPanelTemplate> 
      <Grid/> 
     </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <Image Source="{Binding Image}" Opacity="{Binding Opacity}"/> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 

В любом случае сетка будет заботиться для размещения всех изображений друг на друге.

+0

, если мне нужно в реальном времени объединить несколько изображений, это было бы нормально волна для 10 изображений с разрешением 720p? –

+1

Дайте ему попробовать ... – Clemens

+0

спасибо, что он работает быстро. –