图象处理问题

ladofwind 2010-04-09 10:44:34
我的系统需要把以前的影像处理成要求的格式和大小,也就是A4 size, 200dpi ,用了程序:

Bitmap bmpSource = new Bitmap(((Bitmap)this.images[0]), 1653, 2338);

//Bitmap bmpSource = new Bitmap(((Bitmap)this.images[0]));

int iSourceWidth = bmpSource.Width;

int iSourceHeight = bmpSource.Height;

float fSourceHorResolution = bmpSource.HorizontalResolution;

float fSourceVerResolution = bmpSource.VerticalResolution;

//图象dpi

float fTargetHorResolution = 200;

float fTargetVerResolution = 200;

Bitmap bmpTarget = new Bitmap(1653, 2338);

Graphics g = Graphics.FromImage(bmpTarget);

g.DrawImage(bmpSource, 0, 0, iSourceWidth, iSourceHeight);

bmpTarget.SetResolution(fTargetHorResolution, fTargetVerResolution);

bmpTarget = TiffManager.ConvertTo1bbpIndexed(bmpTarget, (float)0.9);

bmpTarget.Save(filename, info, ep);



在setResolution后,图象清晰度失真,变得很粗,我怀疑是原来图象96dpi,现在程序转成200dpi会造成像素填充.



一张黑白图上,只改动dpi的话,会不会对图象质量造成影响?
...全文
50 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ladofwind 2010-04-09
  • 打赏
  • 举报
回复
弄错了,读出来是200
ladofwind 2010-04-09
  • 打赏
  • 举报
回复
那如何获得原始图象的dpi呢, 我现在读进来全变96了,说是windows的默认

System.Drawing.Image img = System.Drawing.Image.FromHbitmap(this.bmp.GetHbitmap());
float x = img.VerticalResolution;
float y = img.HorizontalResolution;
这样拿到的是x,y =96

this.bmp.Save(filename); 存出来其实是200 dpi
wood87654321 2010-04-09
  • 打赏
  • 举报
回复
当然会失真,这和用photoshop把一张320*240的图放大到640*480保存一个道理
ladofwind 2010-04-09
  • 打赏
  • 举报
回复
什么意思?我是问改大dpi后清晰度会有失真吗?
wuxing2006 2010-04-09
  • 打赏
  • 举报
回复
不改图像大小

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧