Какие API существуют для включения рисования в веб-приложении? - PullRequest
0 голосов
/ 01 ноября 2011

Мне нужно что-то похожее на Silverlight InkPresenter , которое позволяет рисовать от руки рисунок на изображении (таким образом, фиксированный фон и нарисованный передний план сохраняются в одном конечном изображении).

Однако у нас есть ряд клиентов, которые не будут использовать Silverlight и не будут обновляться после .Net 2 на своих машинах. Итак, у меня проблемы с поиском подходящего инструмента для работы (или даже если он существует с учетом моих ограничений):

Я использовал дополнения для планшетного ПК для клиента .Net2, , но это не особенно хорошо . Интересно, какие еще варианты были доступны? В идеале использовать веб-интерфейс .Net (3.5 / 4) или JavaScript API.

Ответы [ 2 ]

0 голосов
/ 01 ноября 2011

Альтернативный подход: вместо использования Ink API для сохранения изображения я могу использовать следующий код для сохранения элемента управления в виде растрового изображения.

У него есть некоторые недостатки (например, после сохранения он не редактируется, но это хорошо для этого сценария).

Public Shared Sub SaveAsBitmap(ByVal control As Windows.Forms.Control, ByVal fileName As String, ByVal imageFormat As Imaging.ImageFormat)
    Dim bmp As Bitmap = ConvertToBitmap(control)
    bmp.Save(fileName, imageFormat)
    bmp.Dispose()
End Sub

Public Shared Function ConvertToBitmap(ByVal control As Windows.Forms.Control) As Bitmap
    //get the instance of the graphics from the control
    Dim g As Graphics = control.CreateGraphics()
    //new bitmap object to save the image      
    Dim bmp As New Bitmap(control.Width, control.Height)
    //Drawing control to the bitmap       
    control.DrawToBitmap(bmp, New Rectangle(0, 0, control.Width, control.Height))
    Return bmp
End Function
0 голосов
/ 01 ноября 2011

В идеале, используя веб-интерфейс .Net (3.5 / 4) или JavaScript API.

Что ж, если ваши клиенты не будут обновляться выше NET 2.0, тогда этот путь уже уходит!

Что не так с использованием Photoshop или даже Paint.NET для создания вашей графики.Paint.NET бесплатен (пожертвования принимаются) и позволяет хранить изображения в нескольких слоях, которые затем можно «раздавить» в растровые изображения, JPEG и т. Д. Для использования в качестве изображений на страницах Winforms / ASP.

РЕДАКТИРОВАТЬ Игнорировать предыдущий ответ

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

В противном случае, если ваши серверы могут использовать версию NET более высокого уровня, чем 2, то како перетаскивании предопределенных элементов управления / элементов с использованием WPF.

...