发布网友 发布时间:2022-04-19 10:52
共2个回答
热心网友 时间:2023-08-26 08:05
我个人通常的方法是做一个配置文件,把需要压缩的格式配置在里面,当然像你那种80*80 和70*70的情况差不多都可以同时用80*80或者70*70,我通常的图片配置是原始图,大图,中图,(可能存在小图),略缩图,这几个差不多就可以了热心网友 时间:2023-08-26 08:05
个人感觉是,只要记录一个图片就可以了,控制图片控件的大小,并控制图片显示格式即可,即图片在控件中全部显示。追答那就只能自己处理图片,保存多种了,呵呵。
如果以前是这么处理的,参照旧代码,调整一下,好象就可以了。
//放大X*X倍
protected void btnBig_Click(object sender, EventArgs e)
{
int i = int.Parse(txtBig.Text.Trim());
System.Drawing.Image img = System.Drawing.Image.FromFile(path);
bitmap = new Bitmap(img.Width * i, img.Height * i);
graphics = Graphics.FromImage(bitmap);
graphics.DrawImage(img, 0, 0, img.Width * i, img.Height * i);
try
{
bitmap.Save(Server.MapPath("./_Big.jpg"), System.Drawing.Imaging.ImageFormat.Jpeg);
MessageShow("已经生成图片,路径为" + @Server.MapPath("./_Big.jpg").Replace("\\", "\\\\"));
}
catch (Exception ex)
{
MessageShow("生成图片错误!" + ex.Message);
throw;
}
graphics.Dispose();
bitmap.Dispose();
}
//缩小为原始图像的1/(X*X)
protected void btnSmall_Click(object sender, EventArgs e)
{
float i = float.Parse(txtBig.Text.Trim());
System.Drawing.Image img = System.Drawing.Image.FromFile(path);
int w = Convert.ToInt32(img.Width / i);
int h = Convert.ToInt32(img.Height / i);
// 防止过度变形
if (w < 1) w = 10;
if (h < 1) h = 0;
bitmap = new Bitmap(w, h);
graphics = Graphics.FromImage(bitmap);
graphics.DrawImage(img, 0, 0, w, h);
try
{
bitmap.Save(Server.MapPath("./_Small.jpg"), System.Drawing.Imaging.ImageFormat.Jpeg);
MessageShow("已经生成图片,路径为" + @Server.MapPath("./_Small.jpg").Replace("\\", "\\\\"));
}
catch (Exception ex)
{
MessageShow("生成图片错误!" + ex.Message);
throw;
}
graphics.Dispose();
bitmap.Dispose();
}
参考资料:http://blog.csdn.net/WYZSC/archive/2011/04/19/6332539.aspx