Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > как сделать Blending изображений


Автор: IGR 21.8.2010, 13:06
подскажите пожалуйсто как сделать Blending изображений.
т.е. имею допустим один BitmapSource и второй. Нужно ак то сделать что бы они смешивались (допустим alpha blend).
было бы вообще круто если бы результирующую картинку можно было сохранить в файл.
подскажите в какую сторону копать. возможно Brush?
спасибо.

Автор: Kefir 21.8.2010, 23:23
Ну допустим альфа бленд (насколько я понимаю) можно получить наложением изображений друг на друга (двумя элементами Image) + играясь с их Opacity. Но вот насчёт других блендов - я боюсь что вам придётся самому писать блендинг изображений вручную (если вы имеете в виду хитрую обработку сложения/вычитания наложенных пикселей картинок). Не припомню таких элементов. Так что удачи вам в этом. Советую бросить взгляд в сторону класса Bitmap и подобное.

Автор: IGR 23.8.2010, 13:03
спасибо. думаю обычный бленд пока сойдет.

Код

RenderTargetBitmap result = new RenderTargetBitmap(mImage.PixelWidth, mImage.PixelHeight, 96, 96, PixelFormats.Pbgra32);

DrawingVisual drawingVisual = new DrawingVisual();
DrawingContext drawingContext = drawingVisual.RenderOpen();
            
Rect rect = new Rect(new Point(0, 0), new Size(mImage.PixelWidth, mImage.PixelHeight));
drawingContext.DrawImage(mImage, rect);
drawingContext.PushOpacity(0.5);
drawingContext.DrawImage(watermarkBitmap, rect);
drawingContext.Close();
result.Render(drawingVisual);


вот я поставил dpi у результирующей картинки 96, хотя в исходной было 300. правельней dpi было бы взять с исходной, но сам draw выполняется в 96 я так понимаю.
существует ли возможность задать значение dpi для рисования ??
если нет, то обойдусь !!  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)