//一个可以使得上传的图片大小按照指定的宽度,高度自动//按比例进行缩放

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

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

//UpFile HtmlInputFile控件类

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

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

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


  
{
   
int FileLength;
   
int imgh=0;
   FileLength 
= UpFile.ContentLength; //记录文件长度 
 
   
if (FileLength == 0
   
//文件长度为零时 
    return "null";
   }

   
else 
   

    Byte[] FileByteArray 
= new Byte[FileLength]; //图象文件临时储存Byte数组 
    Stream StreamObject = UpFile.InputStream; //建立数据流对像 
    StreamObject.Read(FileByteArray,0,FileLength); 
    System.Drawing.Image orimg
=System.Drawing.Image.FromStream(StreamObject);
    
    
    
string mimeType ="image/jpeg";
    ImageCodecInfo[] encoders;
    encoders 
= ImageCodecInfo.GetImageEncoders();
    
for(int j = 0; j < encoders.Length; ++j)
    
{
      
if(encoders[j].MimeType == mimeType)
      myImageCodecInfo
=encoders[j];
    }



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

 

 

//80L压缩比拉


 

    myEncoderParameters.Param[
0= myEncoderParameter;
    
    
    
if(imgw==0&&imgh==0)
    

     
     
     
     orimg.Save(bcwz
+"file://"+id+".jpg",myImageCodecInfo,myEncoderParameters/); 
    
     
     
     
//orimg.Save(bcwz+"file://"+id+".jpg",ImageFormat.Jpeg/);
     orimg.Dispose();
     
    }

    
else
    
{
     
double bl=0.0F;
     bl
=imgw/Convert.ToDouble(orimg.Width);
     imgh
=Convert.ToInt32(orimg.Height*bl);
     b 
= new Bitmap(imgw,imgh);
     g 
= Graphics.FromImage(b);   
     Rectangle destRect1 
= new Rectangle( 00, imgw, imgh);
     
//GraphicsUnit units = GraphicsUnit.Pixel;
     g.DrawImage(orimg,destRect1);
     b.Save(bcwz
+"file://"+id+".jpg",myImageCodecInfo,myEncoderParameters/);
     b.Dispose();
     g.Dispose();
     orimg.Dispose();

    }

    
return bcwz;
   }

  }

posted on 2007-02-12 13:54  mbskys  阅读(160)  评论(0)    收藏  举报