在页面中显示图片的时候,由于单元格的高与宽没有图片的大,所以经常让图片把单元格变大,谁能帮帮我控制一下上传以后 显示出来的图片的大小是按比例变小啊。

解决方案 »

  1.   

    1.方法一,用缩略图.
    2 二.直接把image的宽高变乘一个比例.
      

  2.   

    如果你要控制表格宽度不变,那么可以设置image控件的宽度,高度不用设置,显示出来的图片不论原图片比例如何,它会按照固定的宽度,以原图片比例显示,不会变形。反之,如果要控制表格的高度不变,则设置image控件的高度,宽度不用设置。
      

  3.   

    Tag: 上传图到SQL数据库                                           看了别人的代码,自己又加了一些。
    上传图到数据库,如果上传的图过大,可以按比例缩放。
    还可生成小的缩略图保存到数据库中。
     using System.IO;
     using System.Data.SqlClient;
     using System.Configuration;private System.Drawing.Imaging.ImageFormat GetImageType(object strContentType) 
      { 
       if ((strContentType.ToString().ToLower()) == "image/pjpeg") 
       { 
        return System.Drawing.Imaging.ImageFormat.Jpeg; 
       } 
       else if ((strContentType.ToString().ToLower()) == "image/gif") 
       { 
        return System.Drawing.Imaging.ImageFormat.Gif; 
       } 
       else if ((strContentType.ToString().ToLower()) == "image/bmp") 
       { 
        return System.Drawing.Imaging.ImageFormat.Bmp; 
       } 
       else if ((strContentType.ToString().ToLower()) == "image/tiff") 
       { 
        return System.Drawing.Imaging.ImageFormat.Tiff; 
       } 
       else if ((strContentType.ToString().ToLower()) == "image/x-icon") 
       { 
        return System.Drawing.Imaging.ImageFormat.Icon; 
       } 
       else if ((strContentType.ToString().ToLower()) == "image/x-png") 
       { 
        return System.Drawing.Imaging.ImageFormat.Png; 
       } 
       else if ((strContentType.ToString().ToLower()) == "image/x-emf") 
       { 
        return System.Drawing.Imaging.ImageFormat.Emf; 
       } 
       else if ((strContentType.ToString().ToLower()) == "image/x-exif") 
       { 
        return System.Drawing.Imaging.ImageFormat.Exif; 
       } 
       else if ((strContentType.ToString().ToLower()) == "image/x-wmf") 
       { 
        return System.Drawing.Imaging.ImageFormat.Wmf; 
       } 
       else 
       { 
        return System.Drawing.Imaging.ImageFormat.MemoryBmp; 
       } 
      } 
      private byte[] imageToStream(int nWidth ,int nHeigth,Stream fileDataStream,string fileType)
      {//这个对于大图效果就不好了。
      
       //把image转成stream
       System.Drawing.Image image;
       image = System.Drawing.Image.FromStream(fileDataStream);
       image = image.GetThumbnailImage(nWidth, nHeigth, null, IntPtr.Zero);   Stream MemStream = new MemoryStream();
       image.Save(MemStream,GetImageType(fileType));
       //MemStream.WriteTo(Response.OutputStream);   int fileLength = Convert.ToInt32(MemStream.Length);
       
       byte[] fileData =new byte[fileLength];   //把文件流填充到数组
       MemStream.Position = 0;
       MemStream.Read(fileData,0,fileLength);
       MemStream.Close();   return  fileData;  }