using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.IO;
using
System.Linq;
using
System.Text;
using
System.Threading;
using
System.Threading.Tasks;
using
System.Windows.Forms;
using
ZoomImage.Utils;
namespace
ZoomImage
{
public
partial
class
Form1 : Form
{
public
Form1()
{
InitializeComponent();
}
private
void
Form1_Load(
object
sender, EventArgs e)
{
openFileDialog1.Multiselect =
true
;
}
private
void
txtWidth_KeyPress(
object
sender, KeyPressEventArgs e)
{
if
(e.KeyChar != 8 && !Char.IsDigit(e.KeyChar))
{
e.Handled =
true
;
}
}
private
void
txtHeight_KeyPress(
object
sender, KeyPressEventArgs e)
{
if
(e.KeyChar != 8 && !Char.IsDigit(e.KeyChar))
{
e.Handled =
true
;
}
}
private
void
btnSelectImage_Click(
object
sender, EventArgs e)
{
try
{
if
(txtWidth.Text ==
""
&& txtHeight.Text ==
""
)
{
return
;
}
if
(openFileDialog1.ShowDialog() == DialogResult.OK)
{
Task.Factory.StartNew(() =>
{
string
path = Path.GetDirectoryName(openFileDialog1.FileNames[0]) +
"\\NewImage\\"
;
int
i = 0;
foreach
(
string
fileName
in
openFileDialog1.FileNames)
{
Bitmap bmp = ZoomImageUtil.GetThumbnail(
new
Bitmap(fileName), Convert.ToInt32(txtWidth.Text ==
""
?
"0"
: txtWidth.Text),
Convert.ToInt32(txtHeight.Text ==
""
?
"0"
: txtHeight.Text));
if
(!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
File.Delete(path + Path.GetFileName(fileName));
bmp.Save(path + Path.GetFileName(fileName));
this
.Invoke(
new
InvokeDelegate(() =>
{
lblProgress.Text =
string
.Format(
"进度:{1}/{0}"
, openFileDialog1.FileNames.Length, ++i);
}));
Thread.Sleep(1);
}
MessageBox.Show(
"成功!"
);
});
}
}
catch
(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
/// <summary>
/// 跨线程访问控件的委托
/// </summary>
public
delegate
void
InvokeDelegate();
}