Exemple #1
0
        /**
         * バイナリログの画像ID情報を読み込む
         */
        private MemIconImages ReadLogImagesBin(UFileStream fs)
        {
            MemIconImages _images = new MemIconImages();

            // 件数取得
            int size = fs.GetInt32();

            for (int i = 0; i < size; i++)
            {
                // 1件分のログを取得
                MemIconImage image = new MemIconImage();

                // 名前
                image.Name = fs.GetSizeString();

                // 画像
                int imageSize = fs.GetInt32();
                if (imageSize > 0)
                {
                    byte[] byteImage = fs.GetBytes(imageSize);
                    image.SetByteImage(byteImage);
                }

                _images.Add(image);
            }

            return(_images);
        }
Exemple #2
0
        /**
         * 1行分のIconImage情報を取得する
         */
        private MemIconImages GetIconImagesText(StreamReader sr)
        {
            MemIconImages _images = new MemIconImages();

            while (!sr.EndOfStream)
            {
                string line = sr.ReadLine().Trim();
                Dictionary <string, string> fields = SplitLineStr(line);

                if (fields.Count == 0)
                {
                    continue;
                }
                // 終了判定
                if (line.Equals("</image>"))
                {
                    break;
                }

                // 画像情報を取得
                MemIconImage image = new MemIconImage();

                foreach (KeyValuePair <string, string> kvp in fields)
                {
                    // keyとvalueに分割
                    if (kvp.Value != null)
                    {
                        switch (kvp.Key.ToLower())
                        {
                        case "name":
                            image.Name = kvp.Value;
                            break;

                        case "image":
                            try
                            {
                                // Base64文字列を出コード
                                byte[] byteImage = Convert.FromBase64String(kvp.Value);
                                image.SetByteImage(byteImage);
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine("base64のデコードに失敗しました。");
                            }
                            break;
                        }
                    }
                }
                _images.Add(image);
            }
            return(_images);
        }