一个对上传图片进行处理的函数(等比例缩放) --koma
1
一个可以使得上传的图片大小按照指定的宽度,高度自动按比例进行缩放2

3
,生成的JPG还可以指定其图片的压缩比。很实用。4

5
public string upimgscalesave(HttpPostedFile UpFile,string id,int imgw,string bcwz)6

7
//UpFile HtmlInputFile控件类8

9
//id 上传后保存的文件名10

11
//改变的图片宽度,高度吗,当然是自动计算拉!12

13
//bcwz上传后要存服务器那里啊!14

15

16

{17
int FileLength;18
int imgh=0;19
FileLength = UpFile.ContentLength; //记录文件长度 20
21
if (FileLength == 0) 22

{ //文件长度为零时 23
return "null";24
}25
else 26

{ 27
Byte[] FileByteArray = new Byte[FileLength]; //图象文件临时储存Byte数组 28
Stream StreamObject = UpFile.InputStream; //建立数据流对像 29
StreamObject.Read(FileByteArray,0,FileLength); 30
System.Drawing.Image orimg=System.Drawing.Image.FromStream(StreamObject);31
32
33
string mimeType ="image/jpeg";34
ImageCodecInfo[] encoders;35
encoders = ImageCodecInfo.GetImageEncoders();36
for(int j = 0; j < encoders.Length; ++j)37

{38
if(encoders[j].MimeType == mimeType)39
myImageCodecInfo=encoders[j];40
}41

42

43
System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;44
myEncoderParameters = new EncoderParameters(1);45
myEncoderParameter = new EncoderParameter(myEncoder, 80L);46

47
48

49
50

51
//80L压缩比拉52

53

54
55

56
myEncoderParameters.Param[0] = myEncoderParameter;57
58
59
if(imgw==0&&imgh==0)60

{ 61
62
63
64
orimg.Save(bcwz+"\\"+id+".jpg",myImageCodecInfo,myEncoderParameters); 65
66
67
68
//orimg.Save(bcwz+"\\"+id+".jpg",ImageFormat.Jpeg);69
orimg.Dispose();70
71
}72
else73

{74
double bl=0.0F;75
bl=imgw/Convert.ToDouble(orimg.Width);76
imgh=Convert.ToInt32(orimg.Height*bl);77
b = new Bitmap(imgw,imgh);78
g = Graphics.FromImage(b); 79
Rectangle destRect1 = new Rectangle( 0, 0, imgw, imgh);80
//GraphicsUnit units = GraphicsUnit.Pixel;81
g.DrawImage(orimg,destRect1);82
b.Save(bcwz+"\\"+id+".jpg",myImageCodecInfo,myEncoderParameters);83
b.Dispose();84
g.Dispose();85
orimg.Dispose();86

87
}88
return bcwz;89
}90
}91

浙公网安备 33010602011771号