首页 > 百叶窗显示图片

百叶窗显示图片



using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

using System.Data;

namespace Image

{

 ///



 /// Form1 的摘要说明。

 ///


 public class Form1 : System.Windows.Forms.Form

 {

  private System.Windows.Forms.Button button1;

  private System.Windows.Forms.OpenFileDialog openFileDialog1;

  private System.Drawing.Bitmap MyBitmap;

  private System.Windows.Forms.PictureBox pictureBox1;

  private System.Windows.Forms.Button button2;

  private System.Windows.Forms.Button button3;

  ///

  /// 必需的设计器变量。

  ///


  private System.ComponentModel.Container components = null;

  public Form1()

  {

   //

   // Windows 窗体设计器支持所必需的

   //

   InitializeComponent();

   //

   // TODO: 在 InitializeComponent 调用后添加任何构造函数代码

   //

  }

  ///



  /// 清理所有正在使用的资源。

  ///


  protected override void Dispose( bool disposing )

  {

   if( disposing )

   {

    if (components != null)

    {

     components.Dispose();

    }

   }

   base.Dispose( disposing );

  }

  #region Windows 窗体设计器生成的代码

  ///



  /// 设计器支持所需的方法 - 不要使用代码编辑器修改

  /// 此方法的内容。

  ///


  private void InitializeComponent()

  {

   System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));

   this.button1 = new System.Windows.Forms.Button();

   this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();

   this.pictureBox1 = new System.Windows.Forms.PictureBox();

   this.button2 = new System.Windows.Forms.Button();

   this.button3 = new System.Windows.Forms.Button();

   this.SuspendLayout();

   //

   // button1

   //

   this.button1.Location = new System.Drawing.Point(8, 168);

   this.button1.Name = "button1";

   this.button1.Size = new System.Drawing.Size(72, 23);

   this.button1.TabIndex = 1;

   this.button1.Text = "浏览图像";

   this.button1.Click += new System.EventHandler(this.button1_Click);

   //

   // openFileDialog1

   //

   this.openFileDialog1.Filter = "Image files (JPeg, Gif, Bmp, etc.)|*.jpg;*.jpeg;*.gif;*.bmp;*.tif; *.tiff; *.png|" +

    " JPeg files (*.jpg;*.jpeg)|*.jpg;*.jpeg |GIF files (*.gif)|*.gif |BMP files (*.b" +

    "mp)|*.bmp|Tiff files (*.tif;*.tiff)|*.tif;*.tiff|Png files (*.png)| *.png |All f" +

    "iles (*.*)|*.*";

   //

   // pictureBox1

   //

   this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;

   this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));

   this.pictureBox1.Location = new System.Drawing.Point(8, 8);

   this.pictureBox1.Name = "pictureBox1";

   this.pictureBox1.Size = new System.Drawing.Size(296, 152);

   this.pictureBox1.TabIndex = 3;

   this.pictureBox1.TabStop = false;

   //

   // button2

   //

   this.button2.Location = new System.Drawing.Point(80, 168);

   this.button2.Name = "button2";

   this.button2.Size = new System.Drawing.Size(104, 23);

   this.button2.TabIndex = 4;

   this.button2.Text = "水平百叶窗显示";

   this.button2.Click += new System.EventHandler(this.button2_Click);

   //

   // button3

   //

   this.button3.Location = new System.Drawing.Point(192, 168);

   this.button3.Name = "button3";

   this.button3.Size = new System.Drawing.Size(112, 23);

   this.button3.TabIndex = 5;

   this.button3.Text = "垂直百叶窗显示";

   this.button3.Click += new System.EventHandler(this.button3_Click);

   //

   // Form1

   //

   this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);

   this.ClientSize = new System.Drawing.Size(312, 198);

   this.Controls.Add(this.button3);

   this.Controls.Add(this.button2);

   this.Controls.Add(this.pictureBox1);

   this.Controls.Add(this.button1);

   this.MaximizeBox = false;

   this.Name = "Form1";

   this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;

   this.Text = "演示图像百叶窗显示";

   this.ResumeLayout(false);

  }

  #endregion

  ///



  /// 应用程序的主入口点。

  ///


  [STAThread]

  static void Main()

  {

   Application.Run(new Form1());

  }

  private void button1_Click(object sender, System.EventArgs e)

  {//浏览图像文件

   this.openFileDialog1.ShowDialog();

   if(this.openFileDialog1.FileName.Trim()=="")

    return;

   try

   {   //得到原始大小的图像

    Bitmap SrcBitmap=new Bitmap(this.openFileDialog1.FileName);

    //得到缩放后的图像

    MyBitmap=new Bitmap(SrcBitmap,this.pictureBox1.Width,

     this.pictureBox1.Height);

    this.pictureBox1.Image=MyBitmap;

   }

   catch(Exception Err)

   {

    MessageBox.Show(this,"打开图像文件错误!","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);

   }

  }

  private void button2_Click(object sender, System.EventArgs e)

  {//水平百叶窗显示图像

   MyBitmap=(Bitmap)this.pictureBox1.Image.Clone();

   int dh=MyBitmap.Height/20;

   int dw=MyBitmap.Width;

   Graphics g=this.pictureBox1.CreateGraphics();

   g.Clear(Color.Gray);   

   Point []MyPoint=new Point[20];

   for(int y=0;y<20;y++)

   {

    MyPoint[y].X=0;

    MyPoint[y].Y=y*dh;

   }

   Bitmap bitmap=new Bitmap(MyBitmap.Width,MyBitmap.Height);

   for(int i=0;i
   {

    for(int j=0;j<20;j++)

    {

     for(int k=0;k
     {

      bitmap.SetPixel(MyPoint[j].X+k,MyPoint[j].Y+i,MyBitmap.GetPixel(MyPoint[j].X+k,MyPoint[j].Y+i));

     }

    }

    this.pictureBox1.Refresh();

    this.pictureBox1.Image=bitmap;   

    System.Threading.Thread.Sleep(100);

   }   

  }

  private void button3_Click(object sender, System.EventArgs e)

  {//垂直百叶窗显示图像

   MyBitmap=(Bitmap)this.pictureBox1.Image.Clone();

   int dw=MyBitmap.Width/30;

   int dh=MyBitmap.Height;

   Graphics g=this.pictureBox1.CreateGraphics();

   g.Clear(Color.Gray);   

   Point []MyPoint=new Point[30];

   for(int x=0;x<30;x++)

   {

    MyPoint[x].Y=0;

    MyPoint[x].X=x*dw;

   }

   Bitmap bitmap=new Bitmap(MyBitmap.Width,MyBitmap.Height);

   for(int i=0;i
   {

    for(int j=0;j<30;j++)

    {

     for(int k=0;k
     {

      bitmap.SetPixel(MyPoint[j].X+i,MyPoint[j].Y+k,MyBitmap.GetPixel(MyPoint[j].X+i,MyPoint[j].Y+k));

     }

    }

    this.pictureBox1.Refresh();

    this.pictureBox1.Image=bitmap;   

    System.Threading.Thread.Sleep(100);

   }   

  }

 }

}

转载于:https://www.cnblogs.com/Hotsource/archive/2006/09/18/hotsource.html

更多相关:

  • 菜鸟一枚,正在学习C++ Gui Qt4,整理很零碎,欢迎批评指正   1.窗口标题: QWidget *window = new QWidget; window->setWindowTitle("Enter Your Age"); **************************************** 关于标题...

  • 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 总体思路是: 比较两个链表头节点,较小的插入新链表指针之后,同时较小链表指针向后移动一位 实现如下: ListNode* mergeTwo...

  • 1.直接调用微软socket对象处理 static void Main(string[] args){try{IPAddress ip = new IPAddress(new byte[] { 127, 0, 0, 1 });//在3721端口新建一个TcpListener对象TcpListener listener = new...

  •   现在很多地方都会用到zookeeper, 用到它的地方就是为了实现分布式。用到的场景就是服务注册,比如一个集群服务器,需要知道哪些服务器在线,哪些服务器不在线。   ZK有一个功能,就是创建临时节点,当机器启动应用的时候就会连接到一个ZK节点,然后创建一个临时节点,那么通过获取监听该路径,并且获取该路径下的节点数量就知道有哪些服务...

  • 前台到后台java时data日期类型的转化 在实体类中用@DataTimeFormat,这样设置即使传过来是空的字符串也是可以转的,要和前面传过来的格式一致,如 @XmlElement(name="BeginDate") @DateTimeFormat(pattern="yyyy-MM-dd") private Date begin...

  •         Apache POI是一个开源的利用Java读写Excel,WORD等微软OLE2组件文档的项目。        我的需求是对Excel的数据进行导入或将数据以Excel的形式导出。先上简单的测试代码:package com.xing.studyTest.poi;import java.io.FileInputSt...

  • 要取得[a,b)的随机整数,使用(rand() % (b-a))+ a; 要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a; 要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1; 通用公式:a + rand() % n;其中的a是起始值,n是整数的范围。 要取得a到b之间的...

  • 利用本征图像分解(Intrinsic Image Decomposition)算法,将图像分解为shading(illumination) image 和 reflectance(albedo) image,计算图像的reflectance image。 Reflectance Image 是指在变化的光照条件下能够维持不变的图像部分...

  • 题目:面试题39. 数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 限制: 1 <= 数组长度 <= 50000 解题: cl...

  • 题目:二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 参考以下这颗二叉搜索树:      5     /    2   6   /  1   3示例 1: 输入: [1,6,3,2,5] 输出...