c#怎么保存图片为固定大小(尺寸)
c#如何保存图片为固定大小(尺寸)?
A.bitmap.Save(@"E:\picture\" +a+ ".jpeg", ImageFormat.Jpeg);
上面保存的话就直接保存原来的分辨率大小了。
A图片是base64转码转码过来的,图片分辨率比较高,但是我需要固定大小保存这张图片,比如300X150尺寸的。
------解决思路----------------------
System.Drawing.Bitmap objNewPic=new System.Drawing.Bitmap(A.bitmap,320,240);//图片保存的大小尺寸
objNewPic.Save(@"E:\picture\" +a+ ".jpeg", ImageFormat.Jpeg);
试试
------解决思路----------------------
保存固定大小的图片示例
//保存上传图片并显示
protected void btnUp_Click(object sender, EventArgs e)
{
Name = txtName.Text;
//定义上传路径(在当前目录下的uploadfile文件下)
string uploadpath = this.Server.MapPath("imgHead");//
//取得文件名
string tmpfilename = fupImg.PostedFile.FileName;
//
//文件名
//filename = tmpfilename.Substring(tmpfilename.LastIndexOf("\\") + 1);
string filename = tmpfilename.Replace(tmpfilename.Substring(0, tmpfilename.LastIndexOf(".")), Name);
//调用生成缩略图程序,生成缩略图及生成写字的图片
this.toImage(fupImg.PostedFile.InputStream, uploadpath, filename);
//求取后缀名
//string suffix = filename.Substring(filename.LastIndexOf("."));
//显示图片
this.ImageHead.ImageUrl = "imgHead/" + filename;
}
private void toImage(Stream myStream, string uploadPath, string picName)
{
//生成缩略图
//取得后缀名
string suffix = picName.Substring(picName.LastIndexOf("."));
//缩略图的保存路径
string fileXltPath = uploadPath + "\\" + picName.Replace(suffix, suffix);
//创建一个图像对象取得上传图片对象
System.Drawing.Image myImage = System.Drawing.Image.FromStream(myStream, false);
//对绘制前的图片产生一个缩略图(原图片一半大小)
System.Drawing.Image thumbImage = myImage.GetThumbnailImage(300, 150, null, System.IntPtr.Zero);//设置图片固定大小300*150像素图片
//保存缩略图
thumbImage.Save(fileXltPath, this.getImageFormat(suffix));
//关闭缩略图对象
thumbImage.Dispose();
}
//绘制上传图片格式
private System.Drawing.Imaging.ImageFormat getImageFormat(string suffix)
{
System.Drawing.Imaging.ImageFormat myFormat;
switch (suffix.ToLower())
{
case ".bmp":
myFormat = System.Drawing.Imaging.ImageFormat.Bmp;
break;
case ".emf":
myFormat = System.Drawing.Imaging.ImageFormat.Emf;
break;
case ".exif":
myFormat = System.Drawing.Imaging.ImageFormat.Exif;
break;
case ".gif":
myFormat = System.Drawing.Imaging.ImageFormat.Gif;
break;
case ".icon":
myFormat = System.Drawing.Imaging.ImageFormat.Icon;
break;
case ".jpeg":
case ".jpg":
A.bitmap.Save(@"E:\picture\" +a+ ".jpeg", ImageFormat.Jpeg);
上面保存的话就直接保存原来的分辨率大小了。
A图片是base64转码转码过来的,图片分辨率比较高,但是我需要固定大小保存这张图片,比如300X150尺寸的。
------解决思路----------------------
System.Drawing.Bitmap objNewPic=new System.Drawing.Bitmap(A.bitmap,320,240);//图片保存的大小尺寸
objNewPic.Save(@"E:\picture\" +a+ ".jpeg", ImageFormat.Jpeg);
试试
------解决思路----------------------
保存固定大小的图片示例
//保存上传图片并显示
protected void btnUp_Click(object sender, EventArgs e)
{
Name = txtName.Text;
//定义上传路径(在当前目录下的uploadfile文件下)
string uploadpath = this.Server.MapPath("imgHead");//
//取得文件名
string tmpfilename = fupImg.PostedFile.FileName;
//
//文件名
//filename = tmpfilename.Substring(tmpfilename.LastIndexOf("\\") + 1);
string filename = tmpfilename.Replace(tmpfilename.Substring(0, tmpfilename.LastIndexOf(".")), Name);
//调用生成缩略图程序,生成缩略图及生成写字的图片
this.toImage(fupImg.PostedFile.InputStream, uploadpath, filename);
//求取后缀名
//string suffix = filename.Substring(filename.LastIndexOf("."));
//显示图片
this.ImageHead.ImageUrl = "imgHead/" + filename;
}
private void toImage(Stream myStream, string uploadPath, string picName)
{
//生成缩略图
//取得后缀名
string suffix = picName.Substring(picName.LastIndexOf("."));
//缩略图的保存路径
string fileXltPath = uploadPath + "\\" + picName.Replace(suffix, suffix);
//创建一个图像对象取得上传图片对象
System.Drawing.Image myImage = System.Drawing.Image.FromStream(myStream, false);
//对绘制前的图片产生一个缩略图(原图片一半大小)
System.Drawing.Image thumbImage = myImage.GetThumbnailImage(300, 150, null, System.IntPtr.Zero);//设置图片固定大小300*150像素图片
//保存缩略图
thumbImage.Save(fileXltPath, this.getImageFormat(suffix));
//关闭缩略图对象
thumbImage.Dispose();
}
//绘制上传图片格式
private System.Drawing.Imaging.ImageFormat getImageFormat(string suffix)
{
System.Drawing.Imaging.ImageFormat myFormat;
switch (suffix.ToLower())
{
case ".bmp":
myFormat = System.Drawing.Imaging.ImageFormat.Bmp;
break;
case ".emf":
myFormat = System.Drawing.Imaging.ImageFormat.Emf;
break;
case ".exif":
myFormat = System.Drawing.Imaging.ImageFormat.Exif;
break;
case ".gif":
myFormat = System.Drawing.Imaging.ImageFormat.Gif;
break;
case ".icon":
myFormat = System.Drawing.Imaging.ImageFormat.Icon;
break;
case ".jpeg":
case ".jpg":