如何在函数C#中传递图像

时间:2013-03-23 07:25:05

标签: c# image function

我需要将图像值传递给函数,但我不知道应该使用哪种数据类型? 我非常感谢你的回答...

典型的功能如下:

void UserInfo(string userName, string userEmail,((image type? )) userImagel)
{

// code here

}

我成功登录后使用Twitter API。我想使用函数将用户信息保存在数据库中。因此,他们可以将他们的个人资料信息从Twitter导入我们的网站。

Default.aspx中的

有一行代码如下:

<img src="<%=profileImage%>" />
在Default.aspx.cs中的

我使用了

public string profileImage=""; 
.
.
.
     profileImage = Convert.ToString(o["profile_image_url"]);

因此,通过使用这种方式,个人资料图片将显示在网页上。很明显它是一个链接(URL)。现在,如何从我的数据库中的该URL保存该图像?以及如何在函数中传递其值?

最好的问候

3 个答案:

答案 0 :(得分:2)

怎么样:

void UserInfo(string userName, string userEmail, System.Drawing.Image userImagel)
{

// code here

}

答案 1 :(得分:2)

通常,我会避免将图像二进制文件存储在数据库中,除非有特殊原因这样做。在任何情况下,正如您所描述的那样,您还没有图像,您有图像的URL:

private void UserInfo(string userName, string userEmail, string imageURL);

问题是,如何处理图像。

如果您想获取实际图片,可以使用System.Net.WebClient下载,例如:

private void UserInfo(string userName, string userEmail, string imageURL)
{
    WebClient client = new WebClient();
    byte[] imgData = client.DownloadData(imageURL);

    // store imgData in database (code depends on what API you're 
    // using to access the DB
}

但是,有更多可能和可扩展的方案:

  • 您可以将图像的URL存储在数据库中,并在网页中使用它,让Twitter为图像提供服务(节省带宽)。

  • 您可以下载图像(如上所示),然后将其存储在Web服务器的硬盘而不是数据库中。这样,图像请求可以由Web服务器而不是数据库处理,如果您的服务增长(缓存,CDN,......),这通常具有很多优势

答案 2 :(得分:0)

创建图像文件的对象:

Bitmap bimage = new Bitmap(@"C:\Pictures\2765.jpg");

并通过您的函数传递此对象:

UserInfo("abc", "abc@yahoo.com", bimage);

接收图片:

void UserInfo(string userName, string userEmail, Bitmap userImagel)
{    
// code here    
}