程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#以動畫方式顯示圖像(3)

C#以動畫方式顯示圖像(3)

編輯:關於C語言

三. 以四周擴散的方式顯示圖像

原理: 首先設置圖像顯示的位置, 然後按高度和寬度的比例循環輸出, 直到高度和寬度為原始大小.

代碼:

以四周擴散方式顯示圖像

Code

[copy to clipboard]

CODE:

private void button1_Click(object sender, EventArgs e)
{
try
{
int width = this.MyBitmap.Width; //圖像寬度
int height = this.MyBitmap.Height; //圖像高度
//取得Graphics對象
Graphics g = this.panel1.CreateGraphics();
g.Clear(Color.Gray); //初始為全灰色
for (int i = 0; i <= width / 2; i++)
{
int j = Convert.ToInt32 (i*(Convert.ToSingle(height) / Convert.ToSingle(width)));
Rectangle DestRect = new Rectangle(width / 2 - i, height/2-j, 2 * i, 2*j);
Rectangle SrcRect = new Rectangle(0, 0, MyBitmap.Width, MyBitmap.Height);
g.DrawImage(MyBitmap, DestRect, SrcRect, GraphicsUnit.Pixel);
System.Threading.Thread.Sleep(10);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "信息提示");
}
}

四. 以分塊效果顯示圖像

原理: 首先將圖分為幾塊, 再使用 Bitmap 類的 Clone方法從原圖指定的塊中復制圖像, 最後將這些塊依次顯示出來便可

代碼:

以分塊效果顯示圖像

Code

[copy to clipboard]

CODE:

private void button1_Click(object sender, EventArgs e)
{
Graphics g = this.panel1.CreateGraphics();
g.Clear(Color.White);
int width = MyBitmap.Width;
int height = MyBitmap.Height;
//定義將圖片切分成四個部分的區域
RectangleF[] block ={
new RectangleF(0,0,width/2,height/2),
new RectangleF(width/2,0,width/2,height/2),
new RectangleF(0,height/2,width/2,height/2),
new RectangleF(width/2,height/2,width/2,height/2)};
//分別克隆圖片的四個部分
Bitmap[] MyBitmapBlack ={
MyBitmap.Clone(block[0],System.Drawing.Imaging.PixelFormat.DontCare),
MyBitmap.Clone(block[1],System.Drawing.Imaging.PixelFormat.DontCare),
MyBitmap.Clone(block[2],System.Drawing.Imaging.PixelFormat.DontCare),
MyBitmap.Clone(block[3],System.Drawing.Imaging.PixelFormat.DontCare)};
//繪制圖片的四個部分,各部分繪制時間間隔為0.5秒
g.DrawImage(MyBitmapBlack[0], 0, 0);
System.Threading.Thread.Sleep(1000);
g.DrawImage(MyBitmapBlack[1], width / 2, 0);
System.Threading.Thread.Sleep(1000);
g.DrawImage(MyBitmapBlack[3], width / 2, height / 2);
System.Threading.Thread.Sleep(1000);
g.DrawImage(MyBitmapBlack[2], 0, height / 2);
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved