CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

~~~~~~~~关于C#绘图问题讨论(2)~~~~~~~~

楼主kokcc()2006-07-05 00:05:43 在 .NET技术 / C# 提问

近日我用C#编写一个绘图软件,碰到关于图像缩放的问题,我搞了一天实在不行了(我还要挤时间看世界杯),请各位高手帮帮忙。具体问题如下:  
  我的绘图软件使用了pictureBox控件,我如何将其中显示的图片进行任意比例的放大和缩小,请贴出具体做法,谢谢!  
  另外,还有一个问题,我是用pictureBox控件显示图片,当我的SizeMode属性设置为AutoSize时,我能否随时更改Size属性的大小??如何做??不能的话要怎么办??这个问题谁能解决,我再添分,谢了~~~  
  问题点数:30、回复次数:22Top

1 楼rola(林)回复于 2006-07-05 00:18:39 得分 2

关注Top

2 楼liujiayu10(活着就好)回复于 2006-07-05 08:25:07 得分 2

这里要注意的东西有很多,分辩率,Graphics的大小,缩放质量等等Top

3 楼Knight94(愚翁)回复于 2006-07-05 08:27:12 得分 4

to   另外,还有一个问题,我是用pictureBox控件显示图片,当我的SizeMode属性设置为AutoSize时,我能否随时更改Size属性的大小??如何做??不能的话要怎么办??  
   
  AutoSize肯定不行,改成StretchImage是可以的,不过这样的话,如果当前picturebox的尺寸与image尺寸不合比例的话,会失真。  
   
  比较正确的做法是用原图按照比例进行缩放,而产生新图,提供给picturebox进行显示。Top

4 楼mlhy20060406()回复于 2006-07-05 10:43:50 得分 0

markTop

5 楼kokcc()回复于 2006-07-05 11:20:14 得分 0

关于图像的缩放不会太难的吧??用作标变换是不是也可以??谁能给小弟我解释一下具体做法???(我是要缩放位图~~~)谢谢~~~Top

6 楼Knight94(愚翁)回复于 2006-07-05 11:27:05 得分 4

如果只是形成缩略图,可以使用“Image.GetThumbnailImage”方法,参看  
  ms-help://MS.VSCC.2003/MS.MSDNQTR.2003APR.1033/cpref/html/frlrfSystemDrawingImageClassGetThumbnailImageTopic.htmTop

7 楼kokcc()回复于 2006-07-05 11:31:56 得分 0

不是缩略图是要能按任意比例缩放~~~,有谁会做??Top

8 楼diandian82(点点(nothing))回复于 2006-07-05 11:37:05 得分 4

Rectangle   sourceRectangle=new   Rectangle(e.X-10,e.Y-10,20,20);     //要放大的区域  
        //Rectangle   destRectangle=new   Rectangle(e.X-20,e.Y-20,40,40);  
        Rectangle   destRectangle=new   Rectangle(pictureBox1.Width-150,pictureBox1.Height-150,pictureBox1.Width,pictureBox1.Height);       //放大的比例  
        g.DrawImage(myImage,destRectangle,sourceRectangle,GraphicsUnit.Pixel);  
  Top

9 楼xuguanghui1221()回复于 2006-07-05 11:38:39 得分 2

定义坐标时,和pictureBox的width和heigt关联起来,扩大和缩小相应改变pictureBox的width和heigt的属性就可以Top

10 楼kokcc()回复于 2006-07-05 11:55:55 得分 0

Rectangle   sourceRectangle=new   Rectangle(e.X-10,e.Y-10,20,20);     //要放大的区域  
        //Rectangle   destRectangle=new   Rectangle(e.X-20,e.Y-20,40,40);  
        Rectangle   destRectangle=new   Rectangle(pictureBox1.Width-150,pictureBox1.Height-150,pictureBox1.Width,pictureBox1.Height);       //放大的比例  
        g.DrawImage(myImage,destRectangle,sourceRectangle,GraphicsUnit.Pixel);  
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~```  
  我怎么运行起来没效果??是不是与我的SizeMode属性设置为AutoSize有关??要怎么改??Top

11 楼Knight94(愚翁)回复于 2006-07-05 12:03:53 得分 5

to   不是缩略图是要能按任意比例缩放~~~,有谁会做??  
   
  Bitmap   bitNewSize   =   new   Bitmap(   yourBmp,   100,   100   );  
  yourPictureBox.Image   =   bitNewSize;Top

12 楼kokcc()回复于 2006-07-05 12:11:03 得分 0

按着楼上的方法,我的pictureBox的SizeMode属性设置有没有影响??  
  Top

13 楼Knight94(愚翁)回复于 2006-07-05 12:13:47 得分 2

设置为autosizeTop

14 楼kokcc()回复于 2006-07-05 13:10:07 得分 0

不过我这样设置后,我的绘图区域就和所打开的图形大小一样,如果是小图,我怎样才能增加我的绘图区域???谢谢~~~Top

15 楼kokcc()回复于 2006-07-05 14:59:35 得分 0

Bitmap   bitNewSize   =   new   Bitmap(   yourBmp,   100,   100   );  
  yourPictureBox.Image   =   bitNewSize;  
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
  谢谢~Knight94,图像的缩放我实现了,可是有一个问题,我的pictureBox控件的Size属性和所显示的图像一样大,我的可绘图区域就减小了,不知道能不能自己控制Size属性(在pictureBox的SizeMode属性设置为autosize)???谢谢先~~~  
  Top

16 楼cherishl(老郎 上尉)回复于 2006-07-05 16:05:22 得分 2

我认为用PictureBox是一个不大好的做法,不如直接从Control继承一个用来绘图的控件(Canvas),这样可能复杂一些,但能实现很丰富的操作。Top

17 楼kokcc()回复于 2006-07-05 18:38:10 得分 0

楼上的能不能说得再详细一点,我好研究一下;不过现在时间来不及改了,最好有谁能够通过PictureBox实现我说的情况:  
  图像的缩放我实现了后,我的pictureBox控件的Size属性和所显示的图像一样大,我的可绘图区域就减小了,不知道能不能自己控制Size属性(在pictureBox的SizeMode属性设置为autosize)???谢谢先~~~  
  Top

18 楼kokcc()回复于 2006-07-05 21:26:44 得分 0

有谁知道cherishl所说的Canvas是什么?我在MSDN中找不到............................  
  谢谢~~~~~~~~~~~~~~~~~~~~~~~Top

19 楼Knight94(愚翁)回复于 2006-07-06 08:56:42 得分 3

picturebox设为autosize后,就不能修改picturebox的大小了。  
   
  你说说具体要做什么。Top

20 楼okkk(和海)回复于 2006-07-06 13:17:17 得分 0

很多资料了,LZ搜索一下   慢慢看吧Top

21 楼seemon(飞虫)回复于 2006-07-06 13:28:08 得分 0

直接设置graphic的属性,设置绘图的比例可以不Top

22 楼wwqna(york)回复于 2006-07-06 13:54:54 得分 0

自己画一下了吧,graphic.draw(   这个函数可以搞定了Top

相关问题

关键词

得分解答快速导航

  • 帖主:kokcc
  • rola
  • liujiayu10
  • Knight94
  • Knight94
  • diandian82
  • xuguanghui1221
  • Knight94
  • Knight94
  • cherishl
  • Knight94

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo