示例#1
0
        private static void WriteTextItem(XmlTextWriter xml, HDRealtimeItem data)
        {
            xml.WriteStartElement("text");
            xml.WriteAttributeString("action", "update");
            xml.WriteAttributeString("guid", data.Guid);

            foreach (HDFileListItem item in data.FileList.FileList)
            {
                FileStream file = new FileStream(item.path, FileMode.Open);
                System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
                byte[] retVal = md5.ComputeHash(file);

                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < retVal.Length; i++)
                {
                    sb.Append(retVal[i].ToString("x2"));
                }

                xml.WriteStartElement("file");
                xml.WriteAttributeString("size", file.Length.ToString());
                xml.WriteAttributeString("path", item.path);
                xml.WriteAttributeString("md5", sb.ToString());
                xml.WriteEndElement(); // end file
                file.Close();
            }

            xml.WriteEndElement(); // end text
        }
示例#2
0
        public static byte[] GenerateSinglelineTextXml(Size areaSize, string text, HDFont font)
        {
            MemoryStream  stream = new MemoryStream();
            XmlTextWriter xml    = new XmlTextWriter(stream, Encoding.UTF8);

            xml.Formatting = System.Xml.Formatting.Indented;
            xml.WriteStartDocument();
            xml.WriteStartElement("config.boo");
            xml.WriteStartElement("content");

            xml.WriteStartElement("channel");
            xml.WriteAttributeString("setSize", "0");
            xml.WriteEndElement();

            xml.WriteStartElement("channel");
            xml.WriteAttributeString("action", "add");

            xml.WriteStartElement("area");
            xml.WriteAttributeString("action", "add");

            xml.WriteStartElement("rectangle");
            xml.WriteAttributeString("x", "0");
            xml.WriteAttributeString("y", "0");
            xml.WriteAttributeString("width", areaSize.Width.ToString());
            xml.WriteAttributeString("height", areaSize.Height.ToString());
            xml.WriteEndElement(); // rectangle

            xml.WriteStartElement("materials");

            HDRealtimeItem item = new HDRealtimeItem();

            item.FileList = GetTextMaterials(areaSize, font, text, true);
            item.Guid     = "abc";
            item.type     = HDRealtimeItemType.kContinuousText;
            WriteContinousTextItem(xml, item, true);

            xml.WriteEndElement(); // materials

            xml.WriteEndElement(); // area
            xml.WriteEndElement(); // channel

            xml.WriteEndElement(); // end content
            xml.WriteEndElement(); // end config.boo
            xml.Close();
            //FileStream s = File.Create("D:\\t.xml");
            //s.Write(stream.ToArray(), 0, stream.ToArray().Count());
            //s.Close();
            return(stream.ToArray());
        }
示例#3
0
        private static void WriteContinousTextItem(XmlTextWriter xml, HDRealtimeItem data, bool create = false)
        {
            xml.WriteStartElement("text");

            xml.WriteAttributeString("action", create ? "add" : "update");
            xml.WriteAttributeString("guid", data.Guid);

            xml.WriteStartElement("singleMode");
            xml.WriteValue(1);
            xml.WriteEndElement();
            xml.WriteStartElement("pageCount");
            xml.WriteValue(data.FileList.FileList.Length);
            xml.WriteEndElement();

            // <continuousMove headCloseToTail="0" speed ="4" playType ="ByCount" byCount ="2000"/>
            xml.WriteStartElement("continuousMove");
            xml.WriteAttributeString("headCloseToTail", "0");
            xml.WriteAttributeString("speed", "4");
            xml.WriteAttributeString("playType", "ByCount");
            xml.WriteAttributeString("byCount", "2000");
            xml.WriteEndElement();

            foreach (HDFileListItem item in data.FileList.FileList)
            {
                FileStream file = new FileStream(item.path, FileMode.Open);
                System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
                byte[] retVal = md5.ComputeHash(file);

                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < retVal.Length; i++)
                {
                    sb.Append(retVal[i].ToString("x2"));
                }

                xml.WriteStartElement("file");
                xml.WriteAttributeString("size", file.Length.ToString());
                xml.WriteAttributeString("path", item.path);
                xml.WriteAttributeString("md5", sb.ToString());
                xml.WriteEndElement(); // end file
                file.Close();
            }

            xml.WriteEndElement(); // end image
        }