下面是我的代码:
protected void SaveMyImage_Click(object sender, EventArgs e)
{
string imageUrl = Hidden1.Value;
string saveLocation = Server.MapPath("~/PictureUploads/whatever2.png") ;
HttpWebRequest imageRequest = (HttpWebRequest)WebRequest.Create(imageUrl);
WebResponse imageResponse = imageRequest.GetResponse();
Stream responseStream = imageResponse.GetResponseStream();
using (BinaryReader br = new BinaryReader(responseStream))
{
imageBytes = br.ReadBytes(500000);
br.Close();
}
responseStream.Close();
imageResponse.Close();
FileStream fs = new FileStream(saveLocation, FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs);
try
{
bw.Write(imageBytes);
}
finally
{
fs.Close();
bw.Close();
}
}
}最上面的imageUrl声明接受一个Base64图像字符串,我想把它转换成一个图像。我认为我的代码集只适用于"www.mysite.com/test.jpg“这样的图像,而不适用于Base64字符串。有人有什么建议吗?谢谢!
发布于 2011-03-23 10:33:43
下面是一个示例,您可以修改该方法以接受字符串参数。然后用image.Save(...).保存图像对象
public Image LoadImage()
{
//data:image/gif;base64,
//this image is a single pixel (black)
byte[] bytes = Convert.FromBase64String("R0lGODlhAQABAIAAAAAAAAAAACH5BAAAAAAALAAAAAABAAEAAAICTAEAOw==");
Image image;
using (MemoryStream ms = new MemoryStream(bytes))
{
image = Image.FromStream(ms);
}
return image;
}当字节表示位图时,可能会出现异常A generic error occurred in GDI+.。如果发生这种情况,请在处理内存流之前保存图像(同时仍在using语句中)。
发布于 2016-02-03 01:30:49
您可以将Base64直接保存到文件中:
string filePath = "MyImage.jpg";
File.WriteAllBytes(filePath, Convert.FromBase64String(base64imageString));发布于 2013-04-27 05:03:40
这就是我最终要做的。
private void SaveByteArrayAsImage(string fullOutputPath, string base64String)
{
byte[] bytes = Convert.FromBase64String(base64String);
Image image;
using (MemoryStream ms = new MemoryStream(bytes))
{
image = Image.FromStream(ms);
}
image.Save(fullOutputPath, System.Drawing.Imaging.ImageFormat.Png);
}https://stackoverflow.com/questions/5400173
复制相似问题