当然目前我已经解决:Bitmap.Save( file, ImageFOrmat.Jpeg ) 
这个JPEG格式。但始终没有解决bmp格式等等其他所有的格式。*_*

解决方案 »

  1.   

    >>但始终没有解决bmp格式等等其他所有的格式。
      
    什么意思?jpeg格式的已经能够改变Resolution嘛?
      

  2.   

    还有,http://www.bobpowell.net/changing_resolution.htm
    所说的意思好像是:Bitmap bmp = new Bitmap( 500, 400 );
          bmp.SetResolution( 1000, 1000 );这样的用法不行。
      

  3.   

    public Bitmap(
       int width,
       int height
    );参数:width   新 Bitmap 对象的宽度(以像素为单位)。 
         height  新 Bitmap 对象的高度(以像素为单位)。public void SetResolution(
       float xDpi,
       float yDpi
    );
    参数  xDpi  Bitmap 的水平分辨率,以每英寸的点数为单位。 
          yDpi  Bitmap 的垂直分辨率,以每英寸的点数为单位。
    注意他们的单位不同。 void buttonClick(object sender, System.EventArgs e)
    {
    string myFile  =@"f:\aaa.bmp";
    string myFile2 =@"f:\bbb.bmp";
    Bitmap bmp = new Bitmap( 500, 400 );
    Bitmap bmp2 = new Bitmap(  1000, 1000  );

    Graphics graphics = Graphics.FromImage(bmp);
    Pen pen = new Pen(Color.Blue);
    graphics.DrawLine(pen,100,100,300,300);

    bmp.SetResolution( 50,50 );

    Graphics graphics2 = Graphics.FromImage(bmp2);
    graphics2.DrawImage(bmp,0,0);

    bmp.Save( myFile );

    //bmp.SetResolution( 1000, 1000 );
    bmp2.Save( myFile2 );


    }比较一下aaa.bmp和bbb.bmp, 可以看到aaa.bmp中画的一条线被按比例放大to bbb.bmp。To change the resolution of an image you need to go through the following steps.1.Load the original image  ,if u create an image ,there is no difference
    2.Create a blank image of the resolution you desire.  
    3.Get a Graphics object for the new image 
    4.Draw the original image onto the new one 
    5.Save the new image, perhaps with a different filename.
      

  4.   

    多谢朋友们的研究。多谢 starky(爱在西元前) 《比较一下aaa.bmp和bbb.bmp, 可以看到aaa.bmp中画的一条线被按比例放大to bbb.bmp。>这能说明什么? 不能说明什么。
    分辨率与大小没有关系。但和实际大小与图像大小的比是有关的。
    分辨率只是一个设置。 请你查一下new  出来的图像与photoshop create出来的bmp图有什么不同。
    一个是window 32 /0s....
    一个是window 3.x / ....而且如果是改变分辨率,你也只能对photoshop这此工具生成的window 3.x / ....
    bmp设置。 你不能改变.net生成的bmp图的分辨率*_*
      

  5.   

    分辨率 是 每英寸的点数。你是要先new 出来的一个(500,400)的bmp,要把他变成(1000,1000)的bmp吗?
      

  6.   

    >>当然我知道方法:  Bitmap.SetResolution( xDpi, yDpi ) ...>>然后:  Bitmap.Save( ... )
    这样是不行的,要通过setResolution方法改变Resolution,必须新建一个你所要分辨率的image,然后把原来的image应用setResolution方法后,画到新的image中。或者说 setResolution 的用法只能是这样;)
    你看过http://www.bobpowell.net/changing_resolution.htm了吗?
      

  7.   

    >>分辨率与大小没有关系。但和实际大小与图像大小的比是有关的。
    >>分辨率只是一个设置。photoshop create出来的bmp图:
    新建的时候500,400 ,还有个分辨率的设置, 选择不同的分辨率比如70,80
    save as bmp后,两张图有什么区别?
      

  8.   

    我早说了:  http://www.bobpowell.net/changing_resolution.htm  像这种方法早在 
    one year ago就用了关键现在是要`新建一个任意大小的图,如500 X 400
    然后设置其分辨率"photoshop create出来的bmp图:
    新建的时候500,400 ,还有个分辨率的设置, 选择不同的分辨率比如70,80
    save as bmp后,两张图有什么区别?"这个问题是我提出的,你问我?  我当然知道区别。
    而且  photoshop create出来的图可以改变分辨率.而。NET的不行。
    还有就是我不是改变分辨率。请你看清。是设置分辨率。不过还是谢你了
      

  9.   

    "photoshop create出来的bmp图:
    新建的时候500,400 ,还有个分辨率的设置, 选择不同的分辨率比如70,80
    save as bmp后,两张图有什么区别?"我不是问你存成os 和 win 3。x的区别,而是都存成win3x, 分辨率不同:70,80的图,有什么区别。
      

  10.   

    看一看,WINDOWS C#程序设计,里面关于GDI+很详细,
      

  11.   

    有个API函数StretchBlt可以进行缩放绘制。用法可以到Google上搜一下,有许多。
    当然,你也可以用这个函数将一个图像放大或缩小画到另一个图片上。
      

  12.   

    >>看一看,WINDOWS C#程序设计,里面关于GDI+很详细,你看过了吗? :)
      

  13.   

    WINDOWS C#程序设计 我早在one year之前就看过了
    请大家不要乱回答."我不是问你存成os 和 win 3。x的区别,"
    但必须知道,对于.net只能存为os. 而且os version的bmp的设置与win3.x的不同。如果一张图只是分辨率不同,那么1.大小有可能不一样。(可以到photoshop中试一下)
    2.有可能只是设置不同,也就是说什么者一样,只是BITMAP HEADER中的一俩 个字节不一样。不知道我这样的理解是否正确、谢过大家的发言。不过这个问题我希望大家能好好研究一下。*_*
    而且,我的.net经验可能比各位都要多得多.如果问题简单我也不会压5000分.
    谢过了
      

  14.   

    老兄,你够可以的嘛,5000分,看来你是想请MS专家了,
    但很抱歉,我不是。
    不过也可以给你一点小东东的。
    Bitmap.SetResolution( xDpi, yDpi )
    Bitmap.Save( ... )
    然后,你再新建另一张图片,盖掉原来的那一张,不就行了?
    如果还不行,我也没招了。
      

  15.   

    你没试过怎么就这样说了呢?
    MS专家的mail我已经收到了:
    that its various routines are  capable of working with a number of different types of PageUnits,(documented in the GraphicsUnit enum) - Display, Document, Inch,Millimeter, Pixel, Point, World.这是第一节. (有删节)*_*
    thing you have to remember is that GDI+ is a drawing
    library, not some kind of image conversion utility. Except for .NET
    GDI+'s basic thumbnailing functionality, any image sizing / file
    format changing you perform will be based on drawing code you write.这是其中的一节.不过也不要太信专家的话。
    有时候专家也不一定是专家而且大家要相信自己,要自己好好研究啊。
      

  16.   

    还是很感谢大家。*_*
    我不是很知道如何给分。新ban的我不太会用。
    我想给大家发分了。
    谢过大家了。当然问题是没有解决,同时也在寻求对这方面更精的建议?一定高分相送。/