2011-02-03 91 views
0
public void SaveJpeg(string path, Image image, int quality) 
{ 
    //ensure the quality is within the correct range 
    if ((quality < 0) || (quality > 100)) 
    { 
     //create the error message 
     string error = string.Format("Jpeg image quality must be between 0 and 100, with 100 being the highest quality. A value of {0} was specified.", quality); 
     //throw a helpful exception 
     throw new ArgumentOutOfRangeException(error); 
    } 

    //create an encoder parameter for the image quality 
    EncoderParameter qualityParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality); 
    //get the jpeg codec 
    ImageCodecInfo jpegCodec = GetEncoderInfo("image/jpeg"); 

    //create a collection of all parameters that we will pass to the encoder 
    EncoderParameters encoderParams = new EncoderParameters(1); 
    //set the quality parameter for the codec 
    encoderParams.Param[0] = qualityParam; 
    //save the image using the codec and the parameters 
    image.Save(path, jpegCodec, encoderParams); 
} 

此行实际上是一个问题:image.Save(path, jpegCodec, encoderParams);保存图像 - 路径问题

如果我设置路径= "C:/PathToMyProject/imagename.jpg"然后保存作品,但如果我使用相对路径,然后我得到错误

一GDI +发生通用错误。

我也试过:Server.MapPath(path)但没有帮助。

我的问题是如何设置上传文件夹的相对路径?

+0

这是ASP.NET吗? – BrokenGlass 2011-02-03 21:24:09

+0

错误发生时'path'的值是什么? – 2011-02-03 21:24:27

回答

2

地图指定的虚拟路径到物理路径。

Path.Combine(Server.MapPath("~/images/store"), imageName);

0

您可以使用类似:

Request.PhysicalApplicationPath + "/images/Image1.jpg";