图象高手来救急:关于只修改图象dpi,不改变图象的方法

mte770 2008-01-28 03:57:24
这个是用位图去修改图象的dpi ,速度慢而且修改完后图象暴增
Bitmap bmpSource = new Bitmap(fileName);
int iSourceWidth = bmpSource.Width;
int iSourceHeight = bmpSource.Height;
float fSourceHorResolution = bmpSource.HorizontalResolution;
float fSourceVerResolution = bmpSource.VerticalResolution;
//图象dpi
float fTargetHorResolution = 300;
float fTargetVerResolution = 300;
Bitmap bmpTarget = new Bitmap(iSourceWidth, iSourceHeight);
Graphics g = Graphics.FromImage(bmpTarget);
g.DrawImage(bmpSource, 0, 0, iSourceWidth, iSourceHeight);
bmpTarget.SetResolution(fTargetHorResolution, fTargetVerResolution);
bmpTarget.Save(fileName);
想请教有没有更简便点的方法,直接去修改图象属性中的dpi的值
...全文
580 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenbin 2008-02-03
  • 打赏
  • 举报
回复
那就要研究下插值算法
一般有三种,哪三种我记不起了
网上有,分别从速度和品质上考虑
我们公司用的是Leadtools工具,所以我就不用研究它啦,呵呵
mte770 2008-01-28
  • 打赏
  • 举报
回复
我就是想请教,怎么去插值去增加dpi,不去修改图象中的HorizontalResolution
VerticalResolution
wenbin 2008-01-28
  • 打赏
  • 举报
回复
DPI的意思是什么?
每英寸中有多少个像素,300表示每英寸中有300个像素
为了达到那么大的分辨率,图象就不可避免的增大
图象大小增加是不可避免的,速度慢,可以使用插值的方法来实现增加分辨率
但不会修改图象的fTargetHorResolution值
拉达曼迪斯II 2008-01-28
  • 打赏
  • 举报
回复
废话。
图像DPI是创建时设置。
你的代码等于重建一个BITMAP,DPI 300 属于比较大的了。如果图像再大,当然速度会慢。
ADOBE的图像软件,存盘要半个小时,直到为什么么?差不多的道理。
你要精读高,图像当然大,速度自然慢。

111,117

社区成员

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

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

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