有哪些API可以在Web应用程序中绘图?

时间:2011-11-01 14:29:29

标签: .net drawing microsoft.ink

我需要类似于Silverlight InkPresenter的东西,它允许将徒手绘图保存到图片上(因此固定背景和绘制的前景保存到最终图片中)。

但是,我们有许多客户不会使用Silverlight,也不会在他们的计算机上升级.Net 2。所以,我找不到适合工作的工具(或者即使存在限制条件存在的工具):

我已经为.Net2客户端but it isn't particularly good添加了平板电脑。我想知道还有哪些其他选择?理想情况下使用基于Web的.Net(3.5 / 4)或JavaScript API。

2 个答案:

答案 0 :(得分:0)

  

理想情况下使用基于网络的.Net(3.5 / 4)或JavaScript API。

如果您的客户不会升级到.NET 2.0之外,那么这条大道就会出来!

使用Photoshop甚至Paint.NET生成图形有什么问题。 Paint.NET是免费的(接受捐赠)并允许您将图像存储在多个层中,然后您可以“挤压”到位图,jpeg等用作Winforms / ASP页面上的图像。

编辑忽略上一个答案

如果您正在使用自由手绘功能,请查看this,看看它是否符合您的需求。我知道它主要是矢量图形,但可能有一些东西你可以使用,如果你订阅,你会得到源代码。

否则,如果您的服务器可以使用比2更高级别的NET版本,那么如何使用WPF拖放预定义的控件/元素。

答案 1 :(得分:0)

替代方法:我可以使用以下代码将控件保存为位图,而不是使用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