当然目前我已经解决:Bitmap.Save( file, ImageFOrmat.Jpeg )
这个JPEG格式。但始终没有解决bmp格式等等其他所有的格式。*_*
这个JPEG格式。但始终没有解决bmp格式等等其他所有的格式。*_*
解决方案 »
- 请教一个关于stringbuilder的问题
- C# 如何判断进程是已经打开udl文件?
- gridview 导出excel
- [全新技术书籍]全部6.5折,各种书籍只有一本
- hyperlink和<a>传参的区别?
- 如何实现自定义的对象装箱与拆箱呢?
- [散分]大家贴出C#操作各种数据库的helper类,供使用时查看
- 在C#如何动态卸载DLL文件。
- 我的vs7装上了,但是启动程序时总是提示出错,真是不知该怎么办好
- C#DotNetBar组件中RibbonControl的简单问题!跪求解决!
- 关于DataSet与SqlDataAdapter.Fill
- 找不到类型或命名空间名称“DllImport”(是否缺少 using 指令或程序集引用?)
什么意思?jpeg格式的已经能够改变Resolution嘛?
所说的意思好像是:Bitmap bmp = new Bitmap( 500, 400 );
bmp.SetResolution( 1000, 1000 );这样的用法不行。
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.
分辨率与大小没有关系。但和实际大小与图像大小的比是有关的。
分辨率只是一个设置。 请你查一下new 出来的图像与photoshop create出来的bmp图有什么不同。
一个是window 32 /0s....
一个是window 3.x / ....而且如果是改变分辨率,你也只能对photoshop这此工具生成的window 3.x / ....
bmp设置。 你不能改变.net生成的bmp图的分辨率*_*
这样是不行的,要通过setResolution方法改变Resolution,必须新建一个你所要分辨率的image,然后把原来的image应用setResolution方法后,画到新的image中。或者说 setResolution 的用法只能是这样;)
你看过http://www.bobpowell.net/changing_resolution.htm了吗?
>>分辨率只是一个设置。photoshop create出来的bmp图:
新建的时候500,400 ,还有个分辨率的设置, 选择不同的分辨率比如70,80
save as bmp后,两张图有什么区别?
one year ago就用了关键现在是要`新建一个任意大小的图,如500 X 400
然后设置其分辨率"photoshop create出来的bmp图:
新建的时候500,400 ,还有个分辨率的设置, 选择不同的分辨率比如70,80
save as bmp后,两张图有什么区别?"这个问题是我提出的,你问我? 我当然知道区别。
而且 photoshop create出来的图可以改变分辨率.而。NET的不行。
还有就是我不是改变分辨率。请你看清。是设置分辨率。不过还是谢你了
新建的时候500,400 ,还有个分辨率的设置, 选择不同的分辨率比如70,80
save as bmp后,两张图有什么区别?"我不是问你存成os 和 win 3。x的区别,而是都存成win3x, 分辨率不同:70,80的图,有什么区别。
当然,你也可以用这个函数将一个图像放大或缩小画到另一个图片上。
请大家不要乱回答."我不是问你存成os 和 win 3。x的区别,"
但必须知道,对于.net只能存为os. 而且os version的bmp的设置与win3.x的不同。如果一张图只是分辨率不同,那么1.大小有可能不一样。(可以到photoshop中试一下)
2.有可能只是设置不同,也就是说什么者一样,只是BITMAP HEADER中的一俩 个字节不一样。不知道我这样的理解是否正确、谢过大家的发言。不过这个问题我希望大家能好好研究一下。*_*
而且,我的.net经验可能比各位都要多得多.如果问题简单我也不会压5000分.
谢过了
但很抱歉,我不是。
不过也可以给你一点小东东的。
Bitmap.SetResolution( xDpi, yDpi )
Bitmap.Save( ... )
然后,你再新建另一张图片,盖掉原来的那一张,不就行了?
如果还不行,我也没招了。
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.这是其中的一节.不过也不要太信专家的话。
有时候专家也不一定是专家而且大家要相信自己,要自己好好研究啊。
我不是很知道如何给分。新ban的我不太会用。
我想给大家发分了。
谢过大家了。当然问题是没有解决,同时也在寻求对这方面更精的建议?一定高分相送。/