社区
C#
帖子详情
使用graphics.drawImage时的采样(差值)问题
orion_04
2004-10-17 09:03:06
在使用drawImage时,如果destRectangle和srcRectangle的大小不一样,操作时一定会有采样的问题.
但是我观察默认情况的采样,发现边缘存在锯齿,不光滑,所以我觉得很有可能时点采样,请问如果我
想使用线性(linear)采样该如何设置?
我的目的是使我缩小之后的图看起来光滑些. 有别的方法也可以
...全文
208
13
打赏
收藏
使用graphics.drawImage时的采样(差值)问题
在使用drawImage时,如果destRectangle和srcRectangle的大小不一样,操作时一定会有采样的问题. 但是我观察默认情况的采样,发现边缘存在锯齿,不光滑,所以我觉得很有可能时点采样,请问如果我 想使用线性(linear)采样该如何设置? 我的目的是使我缩小之后的图看起来光滑些. 有别的方法也可以
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
orion_04
2004-10-19
打赏
举报
回复
已经知道了.
graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear;
orion_04
2004-10-19
打赏
举报
回复
我看过一个软件,他的第一版是采用普通的采样方式画出来的,第二版就是线性差值了.他也是用GDIPlus写的, 从他更新的速度上来看,应该使用了现成的方法. 我猜.
hivak47
2004-10-18
打赏
举报
回复
学习,帮你顶!!!!!!!!!!!!!!!
wangxt
2004-10-18
打赏
举报
回复
帮你顶
The123
2004-10-18
打赏
举报
回复
那只有自己动手了。看看下面这个对你又没有帮助。
http://www.bobpowell.net/lockingbits.htm
orion_04
2004-10-18
打赏
举报
回复
最常见的例子是WindowsXP的资源管理器的"显示缩略图", 如果使用
Bitmap bmp = new Bitmap(@"c:\A.jpg");
Bitmap bmpSave = new Bitmap(120, 90);
Graphics graphics = Graphics.FromImage(bmpSave);
graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
graphics.DrawImage(bmp, new Rectangle(0, 0, 120, 90), 0, 0, bmp.Width, bmp.Height, GraphicsUnit.Pixel);
bmpSave.Save(@"c:\B.jpg", ImageFormat.Jpeg);
虽然大小和缩略图差不多,但是效果却差很多,使用上面的方法得到的图因为使用点采样,所以非常粗糙, 但是由于winXP采用的是线性差值, 所以看起来很光滑, 虽然有些模糊.
orion_04
2004-10-18
打赏
举报
回复
MSDN上面SmoothingMode的解释是:
Specifies whether smoothing (antialiasing) is applied to lines and curves and the edges of filled areas
我试过了,不是我要的效果. 我所要的线性差值的效果是在图像缩小的时候新图像上面的一个点是在源图像上面相关点的线性平均结果. 看起来就是稍微有些模糊, 但是很光滑, 不会有一个眼睛缩小之后变得不可见这样的感觉.
flybird079
2004-10-18
打赏
举报
回复
graphics.SmoothingMode = SmoothingMode.AntiAlias;
使用反锯齿
orion_04
2004-10-18
打赏
举报
回复
试了.但是好像没有效果.看帮助感觉不像是干这个的.
The123
2004-10-18
打赏
举报
回复
GDI+里有个"SmoothingMode"试了吗?
orion_04
2004-10-18
打赏
举报
回复
楼上的兄弟,我使用的就是drawImage函数,你这么做没有进行图片的stretchdraw啊.不是我想要的. 我现在要做的是将我的图光滑的缩小. 最好使用线性差值,而不是点采样.
Uncommon
2004-10-17
打赏
举报
回复
void MySampleDlg::OnPaint()
{
...
CPaintDC dc(this);
Gdiplus::Graphics do_draw(dc.m_hDC);
Gdiplus::Status ret_val = do_draw.GetLastStatus()
if (ret_val != Gdiplus::Ok)
{
OutputError(ret_val);
return;
}
Gdiplus::Bitmap bmp_obj(L"C:\\temp\\test_gdi_plus.bmp");
ret_val = do_draw.DrawImage(&bmp_obj, 0, 0, bmp_obj.GetWidth(), bmp_obj.GetHeight());
if (ret_val != Gdiplus::Ok)
{
OutputError(ret_val);
return;
}
}
张海霖
2004-10-17
打赏
举报
回复
不清楚,学习一下
drawimage
的用法 java_Java
Graphics
.
drawImage
方法代码示例
本文整理汇总了Java中javax.microedition.lcdui.
Graphics
.
drawImage
方法的典型用法代码示例。如果您正苦于以下
问题
:Java
Graphics
.
drawImage
方法的具体用法?Java
Graphics
.
drawImage
怎么用?Java
Graphics
.
drawImage
使用
的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一...
GDI+
Graphics
.
DrawImage
使用
最近项目中有个需求,需要将多张位图拼接成一张整体图,由于机器限制,需要考虑到处理
时
间。 我采用的处理方式是:按整体图的大小创建一块画布=>将每一张图贴在整体图的指定位置。 贴图的方法采用的
Graphics
.
DrawImage
()中的两个重载: 1、
Graphics
.
DrawImage
(Image image,int x, int y);将位图按原始物理大小画在画布的指定位置。 ...
解决
Graphics
.
DrawImage
绘制的图像变大的
问题
解决
Graphics
.
DrawImage
绘制的图像变大的
问题
原因分析
DrawImage
是设备相关的函数,换言之就是,
DrawImage
会把屏幕的参数带上,所以,它绘制图像的DPI基本都是96。而我的图片是72DPI的。例如,假定一个 Image 对象的宽度为 216 像素而存储的水平分辨率值为 72 点/英寸。因为 216 除以 72 等于 3,所以
DrawImage
将缩放该图像,使其在 ...
C#
Graphics
.
DrawImage
的一些
问题
今天需要把一些小图(如125*100)放到大图(1024*768)中,然后用到了
Graphics
.
DrawImage
这个函数,开始
使用
的是
DrawImage
(Image image, Point point)。查看结果的
时
候发现极少数的小图插入以后变大了,调试以后发现是C#函数的
问题
。改用
DrawImage
(Image image, Rectangle rect)
问题
就解决了,可能是C#在计算图像
c#
Graphics
.
DrawImage
方法
http://msdn.microsoft.com/zh-cn/library/system.drawing.
graphics
.
drawimage
.aspx 转载于:https://www.cnblogs.com/lihaibo-Leao/p/3301176.html
C#
110,571
社区成员
642,565
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章