C# winform 处理图片的特效用进度条来显示完成进度,请教高手
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace TuPianJinDuTiao
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
pictureBox1.ImageLocation = @"C:\Documents and Settings\Administrator\桌面\mnn.jpg";
pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
}
public class ImageClass
{
/// <summary>马赛克效果</summary>
/// <param name="bmp">Bitmap 对象</param>
/// <param name="picBox">PictureBox 对象</param>
public static void MaSaiKe(Bitmap MyBitmap, PictureBox picBox)
{ //以马赛克效果显示图像
try
{
int dw = MyBitmap.Width / 50;
int dh = MyBitmap.Height / 50;
Graphics g = picBox.CreateGraphics();
g.Clear(Color.Gray);
Point[] MyPoint = new Point[2500];
for (int x = 0; x < 50; x++)
for (int y = 0; y < 50; y++)
{
MyPoint[x * 50 + y].X = x * dw;
MyPoint[x * 50 + y].Y = y * dh;
}
Bitmap bitmap = new Bitmap(MyBitmap.Width, MyBitmap.Height);
for (int i = 0; i < 10000; i++)
{
System.Random MyRandom = new Random();
int iPos = MyRandom.Next(2500);
for (int m = 0; m < dw; m++)
for (int n = 0; n < dh; n++)
{
bitmap.SetPixel(MyPoint[iPos].X + m, MyPoint[iPos].Y + n, MyBitmap.GetPixel(MyPoint[iPos].X + m, MyPoint[iPos].Y + n));
}
picBox.Refresh();
picBox.Image = bitmap;
}
for (int i = 0; i < 2500; i++)
for (int m = 0; m < dw; m++)
for (int n = 0; n < dh; n++)
{
bitmap.SetPixel(MyPoint[i].X + m, MyPoint[i].Y + n, MyBitmap.GetPixel(MyPoint[i].X + m, MyPoint[i].Y + n));
}
picBox.Refresh();
picBox.Image = bitmap;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "信息提示");
}
}
}
private void btnMaSaiKe_Click(object sender, EventArgs e)
{
ImageClass.MaSaiKe(new System.Drawing.Bitmap(this.pictureBox1.Image), pictureBox1);
}
}
}
该程序实现了把一张图片加入马赛克的特效。现在的问题是,图片的马赛克效果处理过程有点慢,如何加入一个进度条来显示图像的完成进度?要求有具体的实现代码。
...全文
相关推荐
winform 等待 特效 动画 窗体显示
当应用程序进行耗时操作时,如数据加载或后台处理,为了提供良好的用户体验,通常会显示一个等待动画或者进度条来告知用户程序正在运行并即将完成。"
C#+WinForm+经过美化的进度条控件
在本文中,我们将深入探讨如何使用C#和WinForm创建并美化进度条控件。进度条控件在软件开发中非常常见,它用于显示任务执行的进度,为用户提供直观的反馈。
C# Winform进度条 数据加载等待控件
C# Winform进度条 数据加载等待控件"就是这样一个组件,它在数据加载或执行耗时操作时提供视觉反馈,告诉用户程序仍在运行,并且预计何时会完成。
C# winform 进度条 ProgressBar 带进度显示
**进度条样式**:C# Winform的ProgressBar还支持两种样式:连续样式(Marquee)和块样式(Block)。连续样式会像滚动条一样显示进度,而块样式则会在完成部分填充矩形块。
C# Winform圆形进度条(改良版)
本教程将详细讲解如何利用C#和GDI+技术实现一个改良版的圆形进度条,它不仅展示了进度,还能够在进度条内部显示当前的进度值。首先,我们要了解GDI+是什么。


