带有动态图像的PictureBox

时间:2017-04-20 21:26:30

标签: c# image picturebox

所以我想要实现的目标在理论上是一件简单的事情,因为我可以在Chrome扩展程序中使用它并阻止图像。

我使用ChromeDriver并添加了adblock并在扩展程序中添加了最初阻止图像来源的内容,因此如果您再次显示图像后显示图像,则无法显示该图像我试图在我的图片框中显示带有数字的图像(参见链接)。

生成图像的代码是

"http://website.com/?q=i&ti=" + Math.Round(GetTime() / 1e3)

输出变为

http://website.com/?q=i&ti=1492723237

我添加了一个代码来计算自1970-01-01以来的ms

    private Int64 GetTime()
    {
        Int64 retval = 0;
        var st = new DateTime(1970, 1, 1);
        TimeSpan t = (DateTime.Now.ToUniversalTime() - st);
        retval = (Int64)(t.TotalMilliseconds + 0.5);
        return retval;
    }

借助计时器加载图片框中的代码,以检测网站上显示该图像的时间是这样的。

    private void trialTimer_Tick(object sender, EventArgs e)
    {
        if (IsElementPresent(By.Id("trial_opt_1")))
        {              
            driver.FindElement(By.Id("trial_reload")).Click();
            pictureBox1.Load("http://website.com/?q=i&ti=" + Math.Round(GetTime() / 1e3));
            pictureBox1.Refresh();
        }
    }

因为我得到的错误是

An unhandled exception of type 'System.ArgumentException' occurred in System.Windows.Forms.dll

Additional information: Parameter is not valid.

真的想知道图片未显示的原因,以及我如何制作图片,一旦检测到图片就会显示在网站上。

图像示例

http://i.imgur.com/bs3k8KS.png

1 个答案:

答案 0 :(得分:0)

Winforms支持网址?也许它确实如此,如果是这样,也许它很糟糕!

也许。但是首先尝试将图像下载到临时文件中。

  • 获取临时文件 - io.path.tempfilename ...(注意这会创建文件)
  • 使用Webclient下载文件下载到临时路径msdn link
  • 完成后,加载图像
  • 也许跳过加载并执行picturebox1.image = new bitmap(temppath);