社区
C#
帖子详情
使用graphics.drawImage时的采样(差值)问题
orion_04
2004-10-17 09:03:06
在使用drawImage时,如果destRectangle和srcRectangle的大小不一样,操作时一定会有采样的问题.
但是我观察默认情况的采样,发现边缘存在锯齿,不光滑,所以我觉得很有可能时点采样,请问如果我
想使用线性(linear)采样该如何设置?
我的目的是使我缩小之后的图看起来光滑些. 有别的方法也可以
...全文
266
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
打赏
举报
回复
不清楚,学习一下
CG
DrawImage
方法
使用
详解与实战Demo
是 Core
Graphics
框架中用于在指定图形上下文中绘制图像的核心函数。其函数原型为:该方法接收三个关键参数:context表示当前绘图的上下文环境,rect定义图像在上下文中绘制的目标区域(以点为单位),image为待绘制的CGImageRef对象,封装了原始像素数据与色彩空间信息。值得注意的是,Core
Graphics
默认
使用
基于左下角原点的坐标系,因此在 UIKit 环境中调用
时
需进行 Y 轴翻转处理以避免图像倒置。相比等高层封装,
Java Swing实现图片自由缩放调整功能
在Java桌面应用开发中,实现高质量图像显示的关键在于对绘制区域的精确控制与图形上下文(
Graphics
Context)的合理管理。Swing框架虽提供了丰富的UI组件,但默认容器并不具备直接支持复杂图像渲染的能力。为此,开发者需通过继承JPanel并重写其绘制方法,构建一个可定制、高性能的绘图面板。本章深入探讨如何基于JPanel创建自定义绘图区域,分析方法的执行机制,并系统讲解
Graphics
2D。
基于DirectShow的摄像头实
时
采样
与图像捕获实战
DirectShow采用基于COM的组件化架构,通过滤波器(Filter)封装音视频处理单元,实现高度可扩展性。每个Filter由一个或多个引脚(Pin)组成,负责数据的输入或输出,而过滤图管理器(Filter Graph Manager)则统一协调Filter间的连接与数据流动。
基于Qt的多
时
相遥感影像配准结果模块化可视化系统
系统的功能性最终体现在具体的模块实现上。根据多
时
相影像配准可视化的核心业务流程,我们将系统划分为五个关键功能模块:数据加载、图像显示、对比分析、配准展示与参数设置。每个模块都具备明确的输入输出契约和独立运行能力,同
时
又能协同工作,形成完整的工作流闭环。
Java实现基础数字图像处理技术与实战
直方图本质上是一个离散函数 $ H(i) $,其中自变量 $ i $ 表示图像中某一灰度级(如0~255),因变量 $ H(i) $ 则代表该灰度级在整个图像中出现的像素数量。对于一幅 $ M \times N $ 的8位灰度图像,其直方图可形式化表示为:其中 $ I(x,y) $ 是位于坐标 $ (x,y) $ 处的像素灰度值,$ \delta(\cdot) $ 为狄拉克 delta 函数,在离散情况下简化为单位脉冲函数,即当 $ I(x,y)=k $
时
计数加一。
C#
111,120
社区成员
642,537
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章