因为在获取网络上的图片大小或数据时,如果不断地形成临时文件,再打开,这个过程不仅速度比较慢,而且给人的感觉总有些不爽,当然不失一种解决办法。
一般的期望就是在内存中完成所有操作,幸好我们可出使用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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

this.textBox1.Text存储的是URL