рисование Silverlight на растровом изображении - PullRequest
0 голосов
/ 21 декабря 2010
Image img = new Bitmap(Image.FromFile(file.FullName));

using (Graphics g = Graphics.FromImage(img)){
    g.DrawRectangle(Pens.Black, 0, 0, img.Width - 2, img.Height - 2);
}

как это

как это сделать в лучах света?

Ответы [ 3 ]

2 голосов
/ 21 декабря 2010

Использование WriteableBitmap класс.

Ссылки:

* * Пример тысяча двадцать-один: * * 1 022

С помощью WritableBitmap вы можете просто нарисовать что-то на Control или Canvas, а затем сохранить его в растровое изображение, используя public WriteableBitmap(UIElement element,Transform transform) конструктор.

2 голосов
/ 21 декабря 2010

Вам не нужно отображать SL Rectangle в WriteableBitmap. Библиотека с открытым исходным кодом WriteableBitmapEx идеально подходит для этого. Смотрите сайт проекта для примера метода DrawRectangle. http://writeablebitmapex.codeplex.com

Существуют также живые образцы, включая Образец формы .

Вы также можете найти код примеров в репозитории исходного кода.

1 голос
/ 21 декабря 2010

Для этого вы можете использовать WriteableBitmap . Создайте холст и нарисуйте свои элементы на холсте, загрузите другие изображения и т. Д. Затем, когда вы закончите рендеринг на холсте, вы можете создать WriteableBitmap из холста и затем делать все, что вам нужно.

В приведенном ниже примере я назначил растровое изображение как Source элемента Image, чтобы показать, что окончательный результат.

Canvas canvas = new Canvas();
UIElement ellipse = new Ellipse() 
  { Width = 100, Height = 100, Fill = new SolidColorBrush(Colors.Red) };
Canvas.SetLeft(ellipse, 100);
Canvas.SetTop(ellipse, 100);
canvas.Children.Add(ellipse);

WriteableBitmap bmp = new WriteableBitmap(canvas, null);
myImage.Source = bmp;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...