C#图片查看器

本文介绍了一个用于在新窗口中展示大图片的应用程序。该程序能够根据PictureBox的大小按原始比例调整图片尺寸,确保图片完全可见而不失真。此外,还提供了一个用于展示大图的静态方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


    1. usingSystem;
    2. usingSystem.Collections.Generic;
    3. usingSystem.Text;
    4. usingSystem.Windows.Forms;
    5. usingSystem.Drawing;
    6. usingSystem.IO;
    7. usingSystem.Drawing.Design;
    8. namespace图片查看
    9. {
    10. #region展示大图
    11. classShowPicture
    12. {
    13. #region缩放图片尺寸
    14. ///<summary>
    15. ///按原始比例缩放图片的高和宽,并且使高小于等于MAX_Y,宽小于等于MAX_X
    16. ///</summary>
    17. ///<paramname="x">图片的宽</param>
    18. ///<paramname="y">图片的高</param>
    19. ///<paramname="MAX_X">PictureBox的高</param>
    20. ///<paramname="MAX_Y">PictureBox的宽</param>
    21. ///<returns></returns>
    22. privatestaticSizeZoom(doublex,doubley,intMAX_X,intMAX_Y)
    23. {
    24. doubleSCALE=x/y;
    25. if(x>MAX_X||y>MAX_Y)//修正原来的与运算符
    26. {
    27. if(x>y)
    28. {
    29. for(x=MAX_X;;)
    30. {
    31. y=x/SCALE;
    32. if(y<=MAX_Y)
    33. break;
    34. else
    35. x--;
    36. }
    37. }
    38. else
    39. {
    40. for(y=MAX_Y;;)
    41. {
    42. x=SCALE*y;
    43. if(x<=MAX_X)
    44. break;
    45. else
    46. y--;
    47. }
    48. }
    49. }
    50. returnnewSize((int)x,(int)y);
    51. }
    52. #endregion
    53. ///<summary>
    54. ///在新窗体中展示大图
    55. ///2008-10-26修改
    56. ///</summary>
    57. ///<paramname="image">图片</param>
    58. publicstaticvoidShow(ImageOriginalImage)
    59. {
    60. if(OriginalImage!=null)
    61. {
    62. FormshowPicture=newForm();
    63. showPicture.BackColor=Color.Snow;
    64. showPicture.Text="图片查看器";
    65. showPicture.WindowState=FormWindowState.Maximized;
    66. PictureBox图片_show_pictureBox=newPictureBox();
    67. 图片_show_pictureBox.BackColor=Color.Black;
    68. 图片_show_pictureBox.BorderStyle=BorderStyle.FixedSingle;
    69. 图片_show_pictureBox.Size=Zoom(OriginalImage.Width,OriginalImage.Height,900,675);
    70. 图片_show_pictureBox.Image=OriginalImage;
    71. 图片_show_pictureBox.SizeMode=PictureBoxSizeMode.StretchImage;
    72. 图片_show_pictureBox.Location=newPoint((1024-图片_show_pictureBox.Size.Width)/2,(675-图片_show_pictureBox.Size.Height)/2);
    73. showPicture.Controls.Add(图片_show_pictureBox);
    74. //图片_show_pictureBox.Anchor=AnchorStyles.Bottom|AnchorStyles.Left|AnchorStyles.Right|AnchorStyles.Top;//自动随窗体大小变化
    75. showPicture.ShowDialog();
    76. GC.Collect();
    77. }
    78. }
    79. #endregion
    80. }
    81. #endregion
    82. }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值