private byte[] GetBimapVector(byte[] contentVectorsBitmap) { Bitmap sign = new Bitmap(230, 184); Graphics graphic = Graphics.FromImage(sign); graphic.FillRectangle(new SolidBrush(System.Drawing.Color.White), 0, 0, sign.Size.Width, sign.Size.Height); ArrayList Points = new ArrayList(); LineToDraw l; if (contentVectorsBitmap != null && contentVectorsBitmap.Length > 0 && contentVectorsBitmap.Length % 4 == 0) { for (int i = 0; i < contentVectorsBitmap.Length; i += 4) { l = new LineToDraw(); l.StartByteX = contentVectorsBitmap[i]; l.StartByteY = contentVectorsBitmap[i + 1]; l.EndByteX = contentVectorsBitmap[i + 2]; l.EndByteY = contentVectorsBitmap[i + 3]; l.StartX = l.StartByteX; l.StartY = l.StartByteY; l.EndX = l.EndByteX; l.EndY = l.EndByteY; Points.Add(l); } try { if (Points.Count < 1) { return null; } Pen _pen = new Pen(Color.Black, 2); for (int i = 0; i < Points.Count; i++) { l = (LineToDraw)Points[i]; graphic.DrawLine(_pen, l.StartX, l.StartY, l.EndX, l.EndY); } MemoryStream ms = new MemoryStream(); sign.Save(ms, ImageFormat.Bmp); return ms.ToArray(); } catch (Exception) { sign.Dispose(); return null; } } else return null; }
public void PostRenderParticles() { GL.PushMatrix(); material.SetPass(0); int cnt = linesToDraw.Count; for (int i = 0; i < cnt; ++i) { LineToDraw ltd = (LineToDraw)linesToDraw[i]; GL.Begin(GL.LINES); GL.Color(ltd.color1); GL.Vertex(ltd.pos1); GL.Color(ltd.color2); GL.Vertex(ltd.pos2); GL.End(); } GL.PopMatrix(); }
private byte[] GetBitmap(String contentBitmap) { Bitmap sign = new Bitmap(230, 184); Graphics graphic = Graphics.FromImage(sign); graphic.FillRectangle(new SolidBrush(System.Drawing.Color.White), 0, 0, sign.Size.Width, sign.Size.Height); ArrayList Points = new ArrayList(); LineToDraw l; if (contentBitmap != null && contentBitmap.Length > 0) { string[] lines = contentBitmap.Split(EndOfLine.ToCharArray()); foreach (string lineOfContent in lines) { if (lineOfContent.Length > 0) { string[] linesplit = lineOfContent.Split(Delimiter.ToCharArray()); l = new LineToDraw(); l.StartX = int.Parse(linesplit[0].ToString()); l.StartY = int.Parse(linesplit[1].ToString()); l.EndX = int.Parse(linesplit[2].ToString()); l.EndY = int.Parse(linesplit[3].ToString()); Points.Add(l); } } try { if (Points.Count < 1) { return null; } Pen _pen = new Pen(Color.Black, 2); for (int i = 0; i < Points.Count; i++) { l = (LineToDraw)Points[i]; graphic.DrawLine(_pen, l.StartX, l.StartY, l.EndX, l.EndY); } MemoryStream ms = new MemoryStream(); sign.Save(ms, ImageFormat.Bmp); return ms.ToArray(); } catch (Exception) { sign.Dispose(); return null; } } else return null; }