Example #1
0
        private static Bitmap DrawWatermark(string path)
        {
            FileInfo fi     = new FileInfo(path);
            string   mark   = fi.Directory.Name;
            Bitmap   bmp    = new Bitmap(path);
            Image    imgStr = AssistApiClient.GetStrokeString(mark);

            using (Graphics g = Graphics.FromImage(bmp))
            {
                g.SmoothingMode     = SmoothingMode.AntiAlias;
                g.TextRenderingHint = TextRenderingHint.AntiAlias;
                float width = 5, height = 5 * (imgStr.Height / (float)imgStr.Width);
                g.DrawImage(imgStr, 2, 2, imgStr.Width + width, imgStr.Height + height);
                return(bmp);
            }
        }
Example #2
0
        public ImageInfo(string source)
        {
            // TODO 这里还没考虑 file=base64:// 的情况
            const string file   = "file=";
            var          index  = source.IndexOf(file, StringComparison.InvariantCulture) + file.Length;
            var          index2 = source.IndexOf("]", index, StringComparison.InvariantCulture);
            var          index3 = source.IndexOf(",", index, StringComparison.InvariantCulture);

            if ((index3 < index2) & (index3 != -1))
            {
                index2 = index3;
            }
            string fileName = source.Substring(index, index2 - index) + ".cqimg";
            string fullPath = Path.Combine(CoolQCode.CqPath, "data", "image", fileName);

            FileInfo = new FileInfo(fullPath);

            string[] settings;
            if (!FileInfo.Exists)
            {
                string tmp = AssistApiClient.GetImgFile(fileName);
                settings = tmp.Replace("\r", "").Trim('\n').Split('\n');
            }
            else
            {
                settings = ConcurrentFile.ReadAllLines(fullPath);
            }

            foreach (var line in settings)
            {
                string[] result = line.Split('=');
                if (result.Length < 2)
                {
                    continue;
                }

                var key   = result[0];
                var value = "";
                for (int i = 1; i < result.Length; i++)
                {
                    value += result[i] + "=";
                }
                value = value.Remove(value.Length - 1);
                switch (key)
                {
                case "md5":
                    Md5 = value;
                    break;

                case "width":
                    Width = int.Parse(value);
                    break;

                case "height":
                    Height = int.Parse(value);
                    break;

                case "size":
                    Size = long.Parse(value);
                    break;

                case "url":
                    Url = value;
                    break;

                case "addtime":
                    Addtime = new DateTime(1970, 1, 1).ToLocalTime().AddSeconds(int.Parse(value));
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
        }