因为在获取网络上的图片大小或数据时,如果不断地形成临时文件,再打开,这个过程不仅速度比较慢,而且给人的感觉总有些不爽,当然不失一种解决办法。
一般的期望就是在内存中完成所有操作,幸好我们可出使用MemoryStream,通过它我们可以比较轻松地达到目的。
1
private void button2_Click(object sender, System.EventArgs e)
2
{
3
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(this.textBox1.Text);
4
WebResponse response = request.GetResponse();
5
Stream stream = response.GetResponseStream();
6
byte []buffer = new byte[1024];
7
8
if( !response.ContentType.ToLower().StartsWith("text/") )
9
{
10
try
11
{
12
Stream outStream = new MemoryStream();
13
Stream inStream = response.GetResponseStream();
14
15
int bufferLength;
16
do
17
{
18
bufferLength = inStream.Read(buffer,0,buffer.Length);
19
if(bufferLength>0)
20
outStream.Write(buffer,0,bufferLength);
21
}
22
while(bufferLength>0);
23
24
outStream.Flush();
25
outStream.Seek(0,SeekOrigin.Begin);
26
inStream.Close();
27
28
Image image = Image.FromStream(outStream);
29
outStream.Close();
30
MessageBox.Show("image :="+image.Width+"X"+image.Height);
31
image.Dispose();
32
}
33
catch (Exception ex)
34
{
35
MessageBox.Show("非图像格式\r\n"+ex.Message);
36
}
37
}
38
else
39
{
40
MessageBox.Show("非图像格式");
41
}
42
}
43
private void button2_Click(object sender, System.EventArgs e)2
{3
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(this.textBox1.Text);4
WebResponse response = request.GetResponse();5
Stream stream = response.GetResponseStream();6
byte []buffer = new byte[1024];7

8
if( !response.ContentType.ToLower().StartsWith("text/") )9
{10
try11
{12
Stream outStream = new MemoryStream();13
Stream inStream = response.GetResponseStream();14

15
int bufferLength;16
do17
{18
bufferLength = inStream.Read(buffer,0,buffer.Length);19
if(bufferLength>0)20
outStream.Write(buffer,0,bufferLength);21
}22
while(bufferLength>0);23

24
outStream.Flush();25
outStream.Seek(0,SeekOrigin.Begin);26
inStream.Close();27

28
Image image = Image.FromStream(outStream);29
outStream.Close();30
MessageBox.Show("image :="+image.Width+"X"+image.Height);31
image.Dispose();32
}33
catch (Exception ex)34
{35
MessageBox.Show("非图像格式\r\n"+ex.Message);36
}37
}38
else39
{40
MessageBox.Show("非图像格式");41
}42
}43

this.textBox1.Text存储的是URL。



浙公网安备 33010602011771号