关于C#的drawimage

弹指歌 2013-09-26 03:21:10
我要实现截取图片的中间部分并且放大,而且放大倍数可调。比如放大为原图两倍就是将原图分为8份,截取中间的4份并且放大至原图大小,我用到了这个函数,但这个函数定义是从原图的左上角的X和Y坐标为相对位置开始计算,这样的话每选一种倍数就得重新调用一次,我想从能不能从图片的中心为相对位置开始计算呢,这样先取倍数,最后调用一次就行,或者有其他的方法么?
//
// 摘要:
// 在指定位置并且按指定大小绘制指定的 System.Drawing.Image 的指定部分。
//
// 参数:
// image:
// 要绘制的 System.Drawing.Image。
//
// destRect:
// System.Drawing.Rectangle 结构,它指定所绘制图像的位置和大小。将图像进行缩放以适合该矩形。
//
// srcX:
// 要绘制的源图像部分的左上角的 x 坐标。
//
// srcY:
// 要绘制的源图像部分的左上角的 y 坐标。
//
// srcWidth:
// 要绘制的源图像部分的宽度。
//
// srcHeight:
// 要绘制的源图像部分的高度。
//
// srcUnit:
// System.Drawing.GraphicsUnit 枚举的成员,它指定用于确定源矩形的度量单位。
//
// 异常:
// System.ArgumentNullException:
// image 为 null。
public void DrawImage(Image image, Rectangle destRect, int srcX, int srcY, int srcWidth, int srcHeight, GraphicsUnit srcUnit);

...全文
415 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
弹指歌 2013-09-26
  • 打赏
  • 举报
回复
当然是可以做到的,我知道啊,但是这样会增加很多语句。不过我后来想到了,增加一个变量,当选择不同变量时,这个参数也不同,在drawimage的时候就可以以这个参数来变化。比如放大1倍(变量为x):
g.DrawImage(pic, new Rectangle(0, 0, save.Width, save.Height), x*startX, x*startY, 2 * startX, 2 * startY, GraphicsUnit.Pixel);
大概就是这样
threenewbee 2013-09-26
  • 打赏
  • 举报
回复
晕,这不就是一个简单的几何和算术的问题么? 中心坐标就是长/2,宽/2。 难道没有3块钱、7块钱的人民币,你就买不了3块钱、7块钱的东西了?
打开下面链接,直接免费下载资源: https://renmaiwang.cn/s/itc0b 摘要:C#代码库涉及的领域包括图形图像、图形绘制等技术。主要实现方式是通过动态加载BMP位图来进行图形绘制操作,其中采用了DrawingImage技术。具体来说,该系统利用Graphics对象创建图形实例,并使用DrawImage方法将预加载的BMP位图融入到绘图中,从而完成动态图形展示功能。 在图形图像处理领域,C#作为一种流行的编程语言,提供了强大的图形绘制功能,尤其在使用BMP格式位图进行图像处理方面。BMP位图是一种常用于存储数字图像的文件格式,其特点在于它是一种点阵图像,能够在不失真的情况下进行放大或缩小,这对于图形绘制应用来说是非常有利的。 在使用C#进行图形绘制时, Graphics类扮演了核心角色,它提供了一系列用于在图形设备上下文中绘制图像和图形的方法。DrawImage方法则是Graphics类中用于将图像绘制到特定位置的关键方法之一。通过DrawImage方法,开发者能够将BMP位图作为图像资源加载到绘图上下文中,进而实现复杂的图像处理和图形展示功能。 在图形绘制过程中,动态加载图像资源是一个重要环节,它允许应用根据需要在运行时加载不同的图像资源,增强了应用的灵活性和交互性。通过动态加载技术,可以实现如动态图形展示、图像拼接、实时编辑等高级功能。在C#中,这通常涉及文件I/O操作,以及图形处理库的调用。 提到的源码免费下载链接为开发者提供了一个实际操作的案例,通过它,开发者可以获得C#代码库的完整源码。该代码库不仅涵盖图形绘制的基础知识,更包括了高级的图形处理技术,这对于学习和深入理解C#在图形图像处理方面的能力大有裨益。下载链接所指向的资源,能够帮助开发者快速上手并实践C#图形绘制的高级应用。 C#图形绘制技术结合了BMP位图的加载和DrawImag

111,120

社区成员

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

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

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