ﺭﺳﻢ ﮔﺮﺍﻑ
ﮐﺘﺎﺑﺨﺎﻧﻪﻫﺎﯼ ﺯﯾﺎﺩﯼ ﺑﺮﺍﯼ ﺭﺳﻢ ﮔﺮﺍﻑ ﻭﺟﻮﺩ ﺩﺍﺭﻧﺪ ﻣﻨﺠﻤﻠﻪ mxGraph ﮐﻪ ﺑﺮﺍﯼ ﺍﺳﺘﻔﺎﺩﻩ ﻏﯿﺮﺗﺠﺎﺭﯼ ﺭﺍﯾﮕﺎﻥ ﻭ ﺳﻮﺭﺱ ﺑﺎﺯ ﺍﺳﺖ.
mxGraph ﻧﮕﺎﺭﺵﻫﺎﯼ PHP ، Java ﻭ JavaScript ﺍﯾﯽ ﻧﯿﺰ ﺩﺍﺭﺩ ﮐﻪ ﺑﻪ ﻫﻤﺮﺍﻩ ﺑﺴﺘﻪ ﻣﺮﺑﻮﻃﻪ ﺍﺭﺍﺋﻪ ﻣﯽﺷﻮﻧﺪ.
ﭘﺲ ﺍﺯ ﺩﺭﯾﺎﻓﺖ ﺁﻥ، ﺩﺭ ﻓﻮﻟﺪﺭﯼ ﺑﻪ ﻧﺎﻡ dotnet ﻣﯽﺗﻮﺍﻧﯿﺪ ﺳﻮﺭﺱ ﮐﺘﺎﺑﺨﺎﻧﻪ ﻣﺮﺑﻮﻁ ﺑﻪ ﺩﺍﺕ ﻧﺖ ﻓﺮﯾﻢ ﻭﺭﮎ ﺁﻥﺭﺍ ﺩﺭﯾﺎﻓﺖ ﮐﻨﯿﺪ.
ﻓﺎﯾﻞ ﭘﺮﻭﮊﻩﯼ VS.Net ﺭﺍ ﺩﺭ ﺁﻥ ﻓﻮﻟﺪﺭ ﻧﺨﻮﺍﻫﯿﺪ ﯾﺎﻓﺖ. ﺣﺘﯽ ﺁﻥﺭﺍ ﮐﺎﻣﭙﺎﯾﻞ ﻫﻢ ﻧﮑﺮﺩﻩﺍﻧﺪ. (ﺍﺣﺘﻤﺎﻻ ﺑﻪ ﺍﯾﻦ ﺩﻟﯿﻞ ﮐﻪ ﮐﺴﯽ ﻧﭙﺮﺳﺪ ﺍﯾﻦ
ﭘﺮﻭﮊﻩ ﺑﺎ ﭼﻪ ﻣﺤﺼﻮﻟﯽ ﺗﻮﻟﯿﺪ ﺷﺪﻩ ﻭ ﺁﯾﺎ ﻻﯾﺴﻨﺲ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺁﻥ ﺭﺍ ﺩﺍﺭﯾﺪ ﯾﺎ ﺧﯿﺮ. ﺍﯾﻦ ﻫﻢ ﯾﮏ ﺭﻭﺵ ﺍﺳﺖ ...)
ﺑﺮﺍﯼ ﮐﺎﻣﭙﺎﯾﻞ ﺁﻥ، ﯾﮏ ﭘﺮﻭﮊﻩ library ﺟﺪﯾﺪ ﺭﺍ ﺩﺭ VS.Net ﺁﻏﺎﺯ ﮐﺮﺩﻩ ﻭ ﭘﻮﺷﻪﻫﺎﯼ ﻣﻮﺟﻮﺩ ﺩﺭ ﭘﻮﺷﻪﯼ dotnet ﺭﺍ ﺑﻪ ﺁﻥ ﺍﻓﺰﻭﺩﻩ ﻭ
ﺳﭙﺲ ﺁﻥﺭﺍ ﮐﺎﻣﭙﺎﯾﻞ ﮐﻨﯿﺪ ﺗﺎ ﻓﺎﯾﻞ mxGraph.dll ﺗﻮﻟﯿﺪ ﺷﻮﺩ.
ﯾﮏ ﻣﺜﺎﻝ ﺳﺎﺩﻩ ﺍﺯ ﻧﺤﻮﻩﯼ ﺍﺳﺘﻔﺎﺩﻩﯼ ﺁﻥ ﺑﻪ ﺻﻮﺭﺕ ﺯﯾﺮ ﺍﺳﺖ ﮐﻪ ﻓﺎﯾﻞ test.png ﺭﺍ ﺗﻮﻟﯿﺪ ﺧﻮﺍﻫﺪ ﮐﺮﺩ.
using System;
using System.Drawing;
using System.Windows.Forms;
using com.mxgraph;
using System.Drawing.Imaging;
void Test1()
{
// Creates graph with model
mxGraph graph = new mxGraph();
Object parent = graph.GetDefaultParent();
// Adds cells into the graph
graph.Model.BeginUpdate();
try
{
Object v1 = graph.InsertVertex(parent, null, "30 ,80 ,20 ,20 ,"ﺳﻼﻡ,
"strokeColor=#FFCF8A;fillColor=#FFCF8A;gradientColor=white;fontBold=true;fontFamily=tahoma;rounded=true
;shadow=true;shape=ellipse");
Object v2 = graph.InsertVertex(parent, null, "!30 ,80 ,150 ,200 ,"ﻇﺎﻟﻢ ﺩﻧﯿﺎﯼ,
"rounded=true;shadow=true;fontFamily=tahoma");
Object e1 = graph.InsertEdge(parent, null, "e1", v1, v2, "fontFamily=tahoma");
}
finally
{
graph.Model.EndUpdate();
}
mxCellRenderer.CreateImage(graph, null, 1,
Color.White, true, null).Save("test.png", ImageFormat.Png);
}
۱/
۴ﺭﺳﻢ ﮔﺮﺍﻑ
ﻭ ﯾﺎ ﺍﮔﺮ ﻗﺼﺪ ﺩﺍﺷﺘﻪ ﺑﺎﺷﯿﺪ ﮐﻪ ﺍﺯ ﺁﻥ ﺩﺭ ASP.Net ﺍﺳﺘﻔﺎﺩﻩ ﮐﻨﯿﺪ، ﯾﮏ generic handler ﺭﺍ ﺑﻪ ﭘﺮﻭﮊﻩ ﺧﻮﺩ ﺍﻓﺰﻭﺩﻩ (ﻣﺜﻼ
ImageHandler.ashx) ﻭ ﮐﺪ ﺁﻥﺭﺍ ﺑﺮﺍﯼ ﻣﺜﺎﻝ ﺑﻪ ﺻﻮﺭﺕ ﺯﯾﺮ ﺗﻐﯿﯿﺮ ﺩﻫﯿﺪ:
using System;
using System.Web;
using com.mxgraph;
using System.Drawing;
using System.Web.Services;
using System.IO;
using System.Drawing.Imaging;
namespace test
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class ImageHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
// Creates graph with model
mxGraph graph = new mxGraph();
Object parent = graph.GetDefaultParent();
// Adds cells into the graph
graph.Model.BeginUpdate();
try
{
Object v1 = graph.InsertVertex(parent, null, "30 ,80 ,20 ,20 ,"ﺳﻼﻡ,
"strokeColor=#FFCF8A;fillColor=#FFCF8A;gradientColor=white;fontBold=true;fontFamily=tahoma;rounded=true
;shadow=true;shape=ellipse");
Object v2 = graph.InsertVertex(parent, null, "!30 ,80 ,150 ,200 ,"ﻇﺎﻟﻢ ﺩﻧﯿﺎﯼ,
"rounded=true;shadow=true;fontFamily=tahoma");
Object e1 = graph.InsertEdge(parent, null, "e1", v1, v2, "fontFamily=tahoma");
}
finally
{
graph.Model.EndUpdate();
}
Image image = mxCellRenderer.CreateImage(graph, null, 1, Color.White, true, null);
// Render BitMap Stream Back To Client
MemoryStream memStream = new MemoryStream();
image.Save(memStream, ImageFormat.Png);
memStream.WriteTo(context.Response.OutputStream);
}
public bool IsReusable
{
get
{
return false;
}
}
۲/
۴ﺭﺳﻢ ﮔﺮﺍﻑ
}
}
ﺍﮐﻨﻮﻥ ﻧﺤﻮﻩ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺍﯾﻦ handler ﺩﺭ ﯾﮏ ﺻﻔﺤﻪ ﻭﺏ ﺑﻪ ﺻﻮﺭﺕ ﺯﯾﺮ ﺍﺳﺖ:
امضای کاربر : هـمـه گفـتـند :"او" کـه رفــت ،
زنـدگی کــن !
ولـــی... کـسـی درک نـکـرد
کــه"او" ... خـود زنــدگــی ام بــود..
|