最近做一个应用项目,有同样问题,提供共享。
思路:1、在上传原图同时上传一个略缩图;
2、原图和略缩图同一命名,但放在不同文件夹;
3、浏览时加载略缩图,点击某一略缩图时显示对应的原图。
代码如下:
public Bitmap ChangeImgSize(System.Drawing.Image bit, double Multiple)
{
Bitmap newBitmap = new Bitmap(Convert.ToInt32(bit.Width * Multiple), Convert.ToInt32(bit.Height * Multiple));
Graphics g = Graphics.FromImage(newBitmap);
g.Clear(Color.Transparent);
//设置画布的描绘质量
g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.DrawImage(bit, new Rectangle(0, 0, newBitmap.Width, newBitmap.Height), 0, 0, bit.Width, bit.Height, GraphicsUnit.Pixel);
g.Dispose();
return newBitmap;
}
string Ymd;
string Name1;
string Name2; //上传的网站图片存放在此文件夹
private void camera1_ImageCaptured(object sender, BinaryResultArgs e)
{
Ymd = DateTime.Now.ToString("yyyyMMddHHmmss");
Name1 = Session["Fullname1"].ToString() + Ymd + ".jpg";
Name2 = @"C:\CqwAPP\ImageMany\"; //上传的网站图片存放在此文件夹
image1.ResourceData = e.Data;
image1.ResourceMode = ResourceMode.Data;
if (string.IsNullOrEmpty(e.error))
{
if (e.Length < 8000000)
{
e.SaveFile(Name1, Name2);//重新命名照片,指定上传文件夹并上传。
image2.ResourceID = Name2 + Name1;//显示上传图片
//把上传图片内容导入一个 Bitmap 类中**************************************
Bitmap bit = new Bitmap(Name2 + Name1);
//用户自由选择指定路径保存文件
SaveFileDialog savedialog = new SaveFileDialog();
savedialog.Filter = "Jpg 图片|*.jpg|Bmp 图片|*.bmp|Gif 图片|*.gif|Png 图片|*.png|Wmf 图片|*.wmf";
//0.1为缩小的倍数,可自定
ChangeImgSize(bit, 0.1).Save(@"C:\CqwAPP\ImageNarrow\" + Name1, System.Drawing.Imaging.ImageFormat.Jpeg);
}
else
{
MessageBox.Show("图片不能超过8M");
}
}
} |