Пример #1
0
    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;

    }
Пример #2
0
    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();
    }
Пример #3
0
    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;
    }