看你的逻辑是不是:原始图片cover 需要转换成水印图片 water
可你最后输出和保存,就和water 没扯上关系context.Response.ContentType = "image/jpeg";
//将修改的图片存入输出流
cover.Save(context.Response.OutputStream, ImageFormat.Jpeg);
cover.Dispose();//释放你看下是不是逻辑问题
可你最后输出和保存,就和water 没扯上关系context.Response.ContentType = "image/jpeg";
//将修改的图片存入输出流
cover.Save(context.Response.OutputStream, ImageFormat.Jpeg);
cover.Dispose();//释放你看下是不是逻辑问题
解决方案 »
- 使用session自动生成menu无显示
- aspxgridview 插入数据更新时提示不为空代码?
- 一个网站的log如何设置,请教
- VS中“在浏览器中查看”的时候,就会出来两个
- 大家有没见过这样的页面传参方式,这个应该怎么写?(诚心请教)
- 用PagedDataSource分页带来的问题
- 关于(公享代码)Web打印,简单实现(一)的一个小问题
- [数据库连接]编译时出现:未定义类型“ADOConnection”
- 我怎么用非IE的浏览器调试asp.net程序呢?
- asp.net中查看gridview中的详细信息用显隐层来显示,不是跳转窗口,修改也是在层中进行的,怎么弄啊这个
- 我想问lINQtoSQL的相关问题
- 关于表格节点的问题
这个不要用虚拟路径,
改成
<add verb="*" path="Admin/BookCovers/*.jpg" type="CoverHandler" />
这个试试。
iis是否有添加相应映射
public void ProcessRequest(HttpContext context)
{
string path = context.Request.PhysicalPath;
string water = context.Server.MapPath("/water/water.png");
if (!File.Exists(path))
{
context.Response.WriteFile(context.Server.MapPath("/error/error.gif"));
context.Response.End();
}
System.Drawing.Image waterImage = System.Drawing.Image.FromFile(water);
System.Drawing.Image Image = System.Drawing.Image.FromFile(path);
if (Image.PixelFormat == PixelFormat.Format1bppIndexed || Image.PixelFormat == PixelFormat.Format4bppIndexed || Image.PixelFormat == PixelFormat.Format8bppIndexed)
{
Bitmap bitmap = new Bitmap(Image.Width, Image.Height);
Graphics gtemp = Graphics.FromImage(bitmap);
gtemp.DrawImage(Image, 0, 0, bitmap.Width, bitmap.Height);
gtemp.DrawImage(waterImage, new Rectangle(Image.Width - waterImage.Width, Image.Height - waterImage.Height, waterImage.Width, waterImage.Height), new Rectangle(0, 0, waterImage.Width, waterImage.Height), GraphicsUnit.Pixel);
bitmap.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
bitmap.Dispose();
gtemp.Dispose();
}
else
{
Graphics g = Graphics.FromImage(Image);
g.DrawImage(waterImage, new Rectangle(Image.Width - waterImage.Width, Image.Height - waterImage.Height, waterImage.Width, waterImage.Height), new Rectangle(0, 0, waterImage.Width, waterImage.Height), GraphicsUnit.Pixel);
Image.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
g.Dispose();
}
waterImage.Dispose();
Image.Dispose();
context.Response.ContentType = "image/jpeg";
context.Response.End();
}
<add verb="*" path="images/*.jpg,images/*.gif" type="HandlerClass.water,HandlerClass"/>
<add verb="*" path="~/Admin/BookCovers/*.jpg" type="CoverHandler" />
改成
<add verb="*" path="Admin/BookCovers/*.jpg" type="CoverHandler" />
结果不显示图片。
我没启用IIS,不过我照着写了一遍也是不好用。