我想知道是否有人有一些代码/有用的链接解释我如何做到这一点。 我很可能会这样使用它:
<img src="ShowThumb.aspx?image=http://the_image.jpg" alt="" />
感谢。
答案 0 :(得分:1)
使用Generic Handler文件(.aspx
),而不是使用.ashx
文件。这意味着您只需要1个文件(没有标记文件),因此它更整洁,更快一点。毕竟,您没有生成网络表单,因此.aspx
文件不是您所追求的。
您可以使用System.Drawing.Graphics.DrawImage()
制作缩略图。
这样简单的事情会起作用:
Bitmap bmpOut = new Bitmap(width, height);
Bitmap B = new Bitmap(context.Server.MapPath(ImageURL));
Graphics g = Graphics.FromImage(bmpOut);
g.InterpolationMode = InterpolationMode.High;
g.DrawImage(B, 0, 0, width, height);
context.Response.ContentType = "image/PNG";
MemoryStream MemStream = new MemoryStream();
B.Save(MemStream, System.Drawing.Imaging.ImageFormat.Png);
B.Dispose();
MemStream.WriteTo(HttpContext.Current.Response.OutputStream);
width
&amp; height
为integer
个值,ImageURL
为本地URI字符串
我不会使用HTML / CSS中的width / height属性调整图像大小。这意味着您要向客户端发送全尺寸图像,浪费每个人的带宽和时间!此外,当HTML调整大小时,它通常会做一个伪劣的扭曲工作。
另一方面,我过去常常生成像这样的动态缩略图,但是在每次发出HTTP请求时都会调整图像大小,从而导致性能受到影响。
因此,无论何时上传主图像,我都会将缩略图保存到物理位置,并在我的HTML中调用它。
答案 1 :(得分:1)
你走在正确的轨道上:我做了一次这样的事情,只使用了HTTP-Handler(ashx)。在那里你可以使用Image类加载.jpg并调整大小并返回它。
请勿忘记将处理程序重新设置为仅调整域中的图像大小,否则可能会非常危险(容易发生DOS攻击)。