示例#1
0
        private void DrawDataImage(Graphics g, BQIPDQueryResult result, string dt)
        {
            Icon icon = new SEOImageIcon(refferUri).GetIcon();
            if (icon == null)
            {
                g.DrawImage(Image.FromFile(SEOImageConfig.Instance.DefaultIcon), imageStyle.IconMap.X, imageStyle.IconMap.Y);
            }
            else
            {
                g.DrawIcon(icon, new Rectangle(imageStyle.IconMap.X, imageStyle.IconMap.Y, 16, 16));
            }

            g.DrawString(refferUri.Host, imageStyle.DomainMap.Font, new SolidBrush(imageStyle.DomainMap.Color), imageStyle.DomainMap.Point);
            g.DrawString(dt, imageStyle.DateMap.Font, new SolidBrush(imageStyle.DateMap.Color), imageStyle.DateMap.Point);

            //PageRank
            if (imageStyle.QueryString.IndexOf("P") != -1)
            {
                if (result.PageRank > 0)
                {
                    //��pagerank����
                    g.FillRectangle(new SolidBrush(imageStyle.PageRankImageMap.Color), new Rectangle(imageStyle.PageRankImageMap.X, imageStyle.PageRankImageMap.Y, result.PageRank * 6, 6));
                    //дPagerankֵ
                    g.DrawString(result.PageRank.ToString(), imageStyle.PageRankTextMap.Font, new SolidBrush(imageStyle.PageRankTextMap.Color), imageStyle.PageRankTextMap.Point);
                }
                else
                {
                    g.DrawString("0", imageStyle.PageRankTextMap.Font, new SolidBrush(imageStyle.PageRankTextMap.Color), imageStyle.PageRankTextMap.Point);
                }
            }

            //��¼��
            if (imageStyle.QueryString.IndexOf("R") != -1)
            {
                //дGoogle���
                g.DrawString(result.GoogleRecords.ToString(), imageStyle.GoogleMap.Font, new SolidBrush(imageStyle.GoogleMap.Color), imageStyle.GoogleMap.Point);

                //дBiadu���
                g.DrawString(result.BaiduRecords.ToString(), imageStyle.BaiduMap.Font, new SolidBrush(imageStyle.BaiduMap.Color), imageStyle.BaiduMap.Point);

                //дYahoo���
                g.DrawString(result.YahooRecords.ToString(), imageStyle.YahooMap.Font, new SolidBrush(imageStyle.YahooMap.Color), imageStyle.YahooMap.Point);
            }

            if (imageStyle.QueryString.IndexOf("A") != -1)
            {
                //дAlexa���
                g.DrawString(result.AlexaRank.ToString(), imageStyle.AlexaMap.Font, new SolidBrush(imageStyle.AlexaMap.Color), imageStyle.AlexaMap.Point);
                g.DrawString(result.AlexaLinkIn.ToString(), imageStyle.LinkInMap.Font, new SolidBrush(imageStyle.LinkInMap.Color), imageStyle.LinkInMap.Point);
            }
        }
示例#2
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            if (Request.QueryString != null)
            {
                string s = Request.QueryString.ToString();
                imageStyle = SEOImageConfig.GetStyle(s);
                if (imageStyle == null)
                {
                    imageStyle = SEOImageStyle.DefaultStyle;
                }
            }
            else
            {
                imageStyle = SEOImageStyle.DefaultStyle;
            }

            string baseimg = imageStyle.Image;

            Image bitmap = Image.FromFile(baseimg);

            Graphics g = Graphics.FromImage(bitmap);

            if (Request.UrlReferrer != null)
            {
                refferUri = Request.UrlReferrer;

                SEOImageHistory history = SEOImageHistory.Get(refferUri.Host);

                BQIPDQueryResult result;

                if (history != null)
                {
                    result = new BQIPDQueryResult();
                    result.PageRank = history.PageRank;
                    result.GoogleRecords = history.Google;
                    result.BaiduRecords = history.Baidu;
                    result.YahooRecords = history.Yahoo;
                    result.AlexaRank = history.AlexaRank;
                    result.AlexaLinkIn = history.AlexaLinkIn;
                    result.AlexaSpeed = history.AlexaSpeed;
                    DrawDataImage(g, result, history.Datetime.ToShortDateString());
                }
                else
                {
                    result = BQIPDQuery.Query(imageStyle.Query, new QueryUrl(refferUri.Host));
                    SEOImageHistory.Save(result, refferUri.Host);
                    DrawDataImage(g, result, DateTime.Now.ToShortDateString());
                }
            }
            else
            {
                g.DrawImage(Image.FromFile(SEOImageConfig.Instance.DefaultIcon), imageStyle.IconMap.X, imageStyle.IconMap.Y);
                g.DrawString("Error or Unknown Site!", imageStyle.DomainMap.Font, new SolidBrush(imageStyle.DomainMap.Color), imageStyle.DomainMap.Point);
            }

            MemoryStream stream = new MemoryStream();
            bitmap.Save(stream, ImageFormat.Png);

            Response.Clear();
            Response.ContentType = "image/png";
            Response.AddHeader("Pragma", "no-cache");
            Response.AddHeader("Cache-Control", "no-cache");
            Response.AddHeader("Expires", "0");
            Response.BinaryWrite(stream.ToArray());
            Response.Flush();
            g.Dispose();
            bitmap.Dispose();
        }