网站是企业的门面,在互联网时代,网站对于企业来说是非常重要的一环,是重中之重的营销渠道之一。从武汉中意源以往的案例来看,网站建设需要在充满美感的同时,还要具备实效。今天谈一谈网站栏目图片这一问题。重点是网站的产品介绍这类栏目,一般是图文混排式,或为上图下文,或为左图右文,为方便管理,后台一般会有相应的图片上传方式。很多业余的网站,在缩略图上是很成问题的。
综合起来,主要分为两类:
第一类问题是图片不成比例,严重失真。 这种问题的原因是网站后台上传的图片没有经过处理,在前台显示的控件使用image类。虽然整体版面看起来整齐划一,但是每一图都不成比例。
第二种问题是图片排版混乱,大小不一。 这种情况下, 缩略图片虽然成比例了,但是大小却有区别,导致版面太乱。
为此,网站建设中要从企业客户的角度出发,不能期望电脑操作人员都是高手,个个都会玩photoshop, 而且是对网站的后台程序进行优化,自成处理每一张大小不一的照片,武汉中意源建议,在后台初始化和设置剪切功能,比如,不管多大的图片都统计处理到400像素这个宽度范围内,再出现190-120像素这个剪切框进行剪切。处理过后上传,既成比例又符合产品框的尺寸。
代码示例:
//处理JPG质量的函数
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
ImageCodecInfo ici = null;
foreach (ImageCodecInfo codec in codecs)
{
if (codec.MimeType == "image/jpeg")
ici = codec;
}
EncoderParameters ep = new EncoderParameters();
ep.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
System.Drawing.Image source = System.Drawing.Image.FromFile(originImgPath);
if (currentWidth != source.Width)
{
int currentHeight = currentWidth * source.Height / source.Width;
Bitmap bmThumb = new Bitmap(currentWidth, currentHeight);
Graphics gThumb = Graphics.FromImage(bmThumb);
gThumb.InterpolationMode = InterpolationMode.HighQualityBicubic;
gThumb.SmoothingMode = SmoothingMode.HighQuality;
gThumb.CompositingQuality = CompositingQuality.HighQuality;
gThumb.Clear(Color.White);
gThumb.DrawImage(source,
new Rectangle(0, 0, currentWidth, currentHeight),
new Rectangle(0, 0, source.Width, source.Height),
GraphicsUnit.Pixel);
MemoryStream ms = new MemoryStream();
bmThumb.Save(ms, ici, ep);
gThumb.Dispose();
bmThumb.Dispose();
source.Dispose();
source = System.Drawing.Image.FromStream(ms);
}
Bitmap bm = new Bitmap(width, height);
Graphics g = Graphics.FromImage(bm);
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.SmoothingMode = SmoothingMode.HighQuality;
g.CompositingQuality = CompositingQuality.HighQuality;
g.Clear(Color.White);
g.DrawImage(source,
new Rectangle(0, 0, width, height),
new Rectangle(x1,y1, width,height),
GraphicsUnit.Pixel);
source.Dispose();
newFileName=newFileName.Replace("_cut","");
bm.Save(newFileName, ici, ep);
g.Dispose();
bm.Dispose();
imgResult.ImageUrl = ResolveUrl(originImgUrl.Insert(originImgUrl.LastIndexOf("."), "_s"));
switch(Label_upload.Text.ToString())
{
case "31c":
Response.Write("<script>alert(剪切成功!回到上传页面)</script>");
// Response.Redirect("panel31cw12.aspx?key="+Labelm.Text.ToString());
Server.Transfer("panel31cw12.aspx?key="+Labelm.Text.ToString());
break;
case "31d":
Response.Write("<script>alert(剪切成功!回到上传页面)</script>");
//Response.Redirect("panel31dw12.aspx?key="+Labelm.Text.ToString());
Server.Transfer("panel31dw12.aspx?key="+Labelm.Text.ToString());
break;
case "32c":
Response.Write("<script>alert(修改成功!)</script>");
//Response.Redirect("panel32cw12.aspx?key="+Label_id.Text.ToString());
Response.Write("<script language=javascript>window.close();</script>");
break;
case "32d":
Response.Write("<script>alert(修改成功!)</script>");
//Response.Redirect("panel32dw12.aspx?key="+Label_id.Text.ToString());
Response.Write("<script language=javascript>window.close();</script>");
break;
default:
Response.Write("<script language=javascript>window.close();</script>");
break;
}