SQL2000 这个字段用来放图片数据的.
我的问题是,如何把图片的数据变小.除了上传图片时,选择小尺寸的图片外,有没有别的方法,把图片的数据压缩下,
上传的图片一般是数码相机拍的照片,1M 2M 的那种图片.

解决方案 »

  1.   

    see~http://blog.csdn.net/mlks_2008/archive/2007/10/24/1840529.aspx
      

  2.   

    http://www.cnblogs.com/niuniu502/archive/2006/09/14/503812.html
    http://www.cnblogs.com/ProgrammerSystem/archive/2007/03/19/679719.html
      

  3.   

    读入图片文件并转化为Bitmap -> 处理此Bitmap的每个点以得到需要的效果 -> 保存新的Bitmap到文件保存成JPG的时候,可以通过如下的方法控制保存的质量~
    /// <summary>
    /// 把位图保存为jpeg格式,并可以这是保存质量
    /// </summary>
    /// <param name="b">位图</param>
    /// <param name="name">文件名</param>/// <param name="quality">保存质量</param>
    /// <res>质量范围0-100,类型为long</res>
    private void JpegSave( Bitmap b, string name,  long quality )
    {
          ImageCodecInfo myImageCodecInfo;
          Encoder myEncoder;
          EncoderParameter myEncoderParameter;
          EncoderParameters myEncoderParameters;
          myImageCodecInfo = FrmMain.GetEncoderInfo( "image/jpeg" );
          myEncoder = Encoder.Quality;
          myEncoderParameters = new EncoderParameters( 1 ); 
           myEncoderParameter = new EncoderParameter( myEncoder, quality );
           myEncoderParameters.Param[0] = myEncoderParameter;
           b.Save( name, myImageCodecInfo, myEncoderParameters );
    }
     
    /**//// <summary>
    /// 获取位图保存文件格式信息
    /// </summary>
    private static ImageCodecInfo GetEncoderInfo( String mimeType )
    {
           int j;
           ImageCodecInfo[] encoders;
           encoders = ImageCodecInfo.GetImageEncoders();
           for( j = 0; j < encoders.Length; ++j )
           {
                  f( encoders[ j ].MimeType == mimeType )
                         return encoders[ j ];
           }
           return null;
    }
      

  4.   

    image.Save(MemStream, ImageFormat.Gif);  直接保存成GIF 256色 看看和你的比小不小
    如果照片是32位图 保存成24位不会丢失任何色彩.
      

  5.   

    image.Save(MemStream, ImageFormat.Gif);  直接保存成GIF 256色 看看和你的比小不小
    如果照片是32位图 保存成24位不会丢失任何色彩.
      

  6.   

    我的源码:            SqlCommand com = new SqlCommand("update dd报价单 set 图片=@image where 编号='" + a报价单.编号 + "'", clsSql.cn, trans);
                SqlParameter sp = new SqlParameter("@image", SqlDbType.Image);
                string str = a报价单.图片.Replace("\\\\", "\\");
                Stream ms = File.Open(str, FileMode.Open, FileAccess.Read);
                byte[] b = new byte[ms.Length];
                ms.Read(b, 0, b.Length);
                sp.Value = b;
                com.Parameters.Add(sp);            try
                {
                    com.ExecuteNonQuery();
                }
                catch (Exception E)
                {
                    MessageBox.Show(E.Message);
                }
                ms.Dispose();
                com.Dispose();
    str="E:\\图片\\款式\\s0041.JPG"
    怎么压缩?
      

  7.   

    Bitmap bmp = new Bitmap("文件名");