GDI绘图的Color问题 为什么我用GDI绘图,在绘图时只用了RGB(0,255,0) RGB(255,0,0) RGB(0,0,0) 三种色,可是绘出来的图保存为jpg 后再打开就出现很多种杂色了? 请问如何能保证不出现这三种色以外的色? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 应该不会出现才对,也许是保存的时候有问题,你可用先绘制到窗体上看看颜色下载一次,就能不断自动更新,欢迎使用《Csdn收音机》! 保存的时候,你是怎么样保存的贴图片很累吧,用《Csdn收音机》截图功能轻松解决! bitmap.save 保存为jpg文件 然后再用代码检查打开后文件的每个像素,结果发现很多像素的色并不是我要的纯色,而是比如果(20,23,52) 之类的杂色 JPG是有损压缩,保存的时候一般压缩率设置为8就可以了,太低图像失真 Save的重载方法里应该有ImageCodecInfo,EncoderParameters的设置吧。可以通过EncoderParameters eps = new EncoderParameters(1);EncoderParameter ep = new EncoderParameter(enc, 90L);//质量等级90% eps.Param[0] = ep;来设置保存的质量等级。回答问题要查资料?用《Csdn收音机》可以最快速度搞定! 不是很明白,这个不和Bitmap对象关联起来怎么起作用? ImageCodecInfo ImageCodecInfo1 = null; ImageCodecInfo[] encoders = ImageCodecInfo.GetImageDecoders(); foreach (ImageCodecInfo imageCodecInfo in encoders) { if (imageCodecInfo.FormatDescription == "JPEG") { ImageCodecInfo1 = imageCodecInfo; break; } } EncoderParameters ep = new EncoderParameters(1); ep.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 50L); bitmap.Save(@"c:\2.jpg", ImageCodecInfo1, ep);你这样用看看使用《Csdn收音机》截图功能,轻松制作图文并茂的文章! 搞定 private static ImageCodecInfo GetEncoderInfo(String mimeType) { int j; ImageCodecInfo[] encoders; encoders = ImageCodecInfo.GetImageEncoders(); for (j = 0; j < encoders.Length; ++j) { if (encoders[j].MimeType == mimeType) return encoders[j]; } return null; }调用: System.Drawing.Imaging.Encoder myEncoder; EncoderParameter myEncoderParameter; EncoderParameters myEncoderParameters; ImageCodecInfo myImageCodecInfo = ImageCodecInfo.GetImageEncoders()[0]; myEncoder = System.Drawing.Imaging.Encoder.Quality; myEncoderParameters = new EncoderParameters(1); myEncoderParameter = new EncoderParameter(myEncoder, 95L); myEncoderParameters.Param[0] = myEncoderParameter;//将构建出来的EncoderParameter类赋给EncoderParameters数组 myImageCodecInfo = GetEncoderInfo("image/jpeg"); bmp.Save(file,myImageCodecInfo,myEncoderParameters); C#报错使用未赋值的局部变量a 【200】还是winform多语言问题…… 编译工具 c#中ComboBox内容作为日期传给存储过程问题 ASP.NET中输出成Excel表的问题!!(急!急!) 关于 WPF TranslateTransform后覆盖其他控件的问题 大家能否介绍几个关于C#的比较好的网站! 测试程序链接问题:不知那里出错,请指教 关于TreeView问题 C# 中关于自制控件的使用问题 给分 winform窗体卡屏的问题 asp.net 还原sql 2005数据库,如果被占用怎么办?
贴图片很累吧,用《Csdn收音机》截图功能轻松解决!
EncoderParameters eps = new EncoderParameters(1);
EncoderParameter ep = new EncoderParameter(enc, 90L);//质量等级90%
eps.Param[0] = ep;
来设置保存的质量等级。回答问题要查资料?用《Csdn收音机》可以最快速度搞定!
ImageCodecInfo[] encoders = ImageCodecInfo.GetImageDecoders();
foreach (ImageCodecInfo imageCodecInfo in encoders)
{
if (imageCodecInfo.FormatDescription == "JPEG")
{
ImageCodecInfo1 = imageCodecInfo;
break;
}
}
EncoderParameters ep = new EncoderParameters(1);
ep.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 50L);
bitmap.Save(@"c:\2.jpg", ImageCodecInfo1, ep);
你这样用看看使用《Csdn收音机》截图功能,轻松制作图文并茂的文章!
{
int j;
ImageCodecInfo[] encoders;
encoders = ImageCodecInfo.GetImageEncoders();
for (j = 0; j < encoders.Length; ++j)
{
if (encoders[j].MimeType == mimeType)
return encoders[j];
}
return null;
}
调用:
System.Drawing.Imaging.Encoder myEncoder;
EncoderParameter myEncoderParameter;
EncoderParameters myEncoderParameters;
ImageCodecInfo myImageCodecInfo = ImageCodecInfo.GetImageEncoders()[0];
myEncoder = System.Drawing.Imaging.Encoder.Quality;
myEncoderParameters = new EncoderParameters(1);
myEncoderParameter = new EncoderParameter(myEncoder, 95L);
myEncoderParameters.Param[0] = myEncoderParameter;//将构建出来的EncoderParameter类赋给EncoderParameters数组
myImageCodecInfo = GetEncoderInfo("image/jpeg"); bmp.Save(file,myImageCodecInfo,myEncoderParameters);