使用C#ASP.Net Web表单将任何大小的图像调整为固定尺寸

时间:2012-04-01 05:51:18

标签: c# jquery asp.net webforms image-resizing

我已经完成了图像调整大小,同时允许用户上传特定尺寸的图像,然后将它们裁剪到不同的尺寸我还在项目中使用了jCrop,以允许用户上传特定尺寸的图像,然后选择图像区域&相应地裁剪。

在新项目中,我要求用户可以上传宽度至少大于500Px的任何尺寸图像,然后我必须允许用户使用jCrop选择图像部分,然后将图像保存在475x313的不同维度,310x205,同时保持宽高比。

如果我允许使用上传固定大小的图像但是我不知道如何处理可变尺寸的图像,我可以这样做。

我还需要在固定尺寸的框中显示裁剪前上传的图像..让我们说300x200。在这个区域,我必须允许用户在裁剪之前选择图像的一部分。

我面临的问题是如何处理可变长度图像并显示它是一个300x200px的固定图像框。

2 个答案:

答案 0 :(得分:1)

我写了一篇关于using jCrop with dynamically-resized uploaded images的文章,这似乎是你需要的。

如果您正在寻找能够为您完成的开源ASP.NET控件,check out cropimage.net

答案 1 :(得分:0)

想要通过programmatically去,而不是试试这个:

如果您使用file upload上传图片

    string path = Path.GetFileName(fileuploaderID.PostedFile.FileName); 
    ConvertThumbnails(width, height, fileuploaderID.FileBytes, path);

您的功能

       public void ConvertThumbnails(int width, int height, byte[] filestream, string path)
      {
        // create an image object, using the filename we just retrieved

        var stream = new MemoryStream(filestream);
        System.Drawing.Image image = System.Drawing.Image.FromStream(stream);

         try
              {  
                int fullSizeImgWidth = image.Width;
                int fullSizeImgHeight = image.Height;
                float imgWidth = 0.0F;
                float imgHeight = 0.0F;
                imgWidth = width;
                imgHeight = height;

                Bitmap thumbNailImg = new Bitmap(image, (int)imgWidth, (int)imgHeight);
                MemoryStream ms = new MemoryStream();
                // Save to memory using the Jpeg format
                thumbNailImg.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                // read to end
                byte[] bmpBytes = ms.GetBuffer();
                item.Attachments.Add(path, bmpBytes);
                thumbNailImg.Dispose();
                ms.Close();

        }
        catch (Exception)
        {
            image.Dispose();
        }
    }