如何在C#中检索图像(jpg文件)?

时间:2014-04-11 09:51:27

标签: c# asp.net .net

我是C#的新手,我有以下问题。

我必须检索一个 hello.jpg 文件,该文件位于我项目的子目录中。

所以我认为我必须将相对路径放入字符串中并使用此字符串来创建Image对象或类似的东西。

你能帮助我吗?

编辑:

我已将此代码插入到我的课程中:

private System.Web.HttpServerUtility server;

protected System.Drawing.Image _backgroundImg = System.Drawing.Image.FromFile(server.MapPath("~/Path/Relative/To/Root.jpg"));

但是我收到以下错误消息:

  

错误76字段初始值设定项无法引用非静态字段,   方法或财产   ' PdfReport.iTextDocumentBase.server' C:\ Develop \ EarlyWarning \ public \ Implementazione \ Ver2 \ PdfReport \ iTextDocumentBase.cs 44 87 PdfReport   错误77字段初始值设定项无法引用非静态字段,   方法或财产   ' PdfReport.iTextDocumentBase.server' C:\ Develop \ EarlyWarning \ public \ Implementazione \ Ver2 \ PdfReport \ iTextDocumentBase.cs 44 87 PdfReport

为什么呢?我该怎么做才能解决?

4 个答案:

答案 0 :(得分:1)

protected void Page_Load(object sender, EventArgs e)
    {
        string[] filesindirectory = Directory.GetFiles(Server.MapPath("~/Path/Relative/To/Root.jpg"));
        int i = 1;
        foreach (string s in filesindirectory)
        {
            s.Split();
            Image img = new Image();
            img.ID = "image" + i.ToString();

            Response.Write(s.ToString()+"</br>");

            string fileName = Path.GetFileName(s.ToString());

            img.ImageUrl = "~/images/"+fileName;
            img.Visible = true;
            Page.Controls.Add(img);
            i++;

        }
    }

答案 1 :(得分:0)

您可以使用Server.MapPath查找文件,Image.FromFile加载文件:

var image = Image.FromFile(Server.MapPath("~/Path/Relative/To/Root.jpg"));

请注意这一点,但是Image使用GDI +,这可能不是Web服务器上最好的。

这假设您想要在服务器代码中使用图像,当然。如果你想将它显示给客户端,你只需使用HTML,不需要服务器代码。

答案 2 :(得分:0)

在lbllogo中存储图像路径 lblLogo.Text = fuLogo.FileName.ToString();

使用GetFileName显示图像 lblLogo.Text = System.IO.Path.GetFileName(imgLogo.ImageUrl);

答案 3 :(得分:0)

实际上这里的答案是正确的,但似乎有一点混乱,因为你的新手。

以下是解决此问题的方法:

  • 在项目中创建一个新文件夹,将文件夹命名为图像
  • hello.jpg 图像复制到图像文件夹中。
  • 现在您的图片路径为:〜/ Images / hello.jpg

现在,为了在页面中显示图像,您应该在aspx页面中创建一个Image控件,然后在其中显示 hello.jpg 图像。

在Page_Load事件中执行以下操作:

 protected void Page_Load(object sender, EventArgs e)
    {
        Image img = new Image();
        img.ImageUrl = "~/Images/hello.jpg";
        Page.Controls.Add(img);
    }

同样,其他答案也是正确的,但您需要在答案中更改图片的正确网址。

而且我还注意到您尝试在代码中创建server对象?您不必创建服务器对象,因为您已经在页面控件中使用它,并且可以像Page.Server一样访问它。