- 浏览: 109911 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
amyasp:
这个这个不用自己写了吧,string.join看看这个
自己写的一个方法(字符串数组转换字符串),可能不是很严谨,以后再改改
using System;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
/// <summary>
///ImageHandler 的摘要说明
/// </summary>
public class ImageHandler:IHttpHandler
{
private const string waterMark_URL = "~/Images/waterMark.jpg";
private const string defaultImage_URL = "~/Images/Default.jpg";
public ImageHandler()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
public void ProcessRequest(HttpContext context)
{
System.Drawing.Image ImageConver;
if (File.Exists(context.Request.PhysicalPath))
{
//加载文件
ImageConver = Image.FromFile(context.Request.PhysicalPath);
//加载水印图片
Image waterMark = Image.FromFile(context.Request.MapPath(waterMark_URL));
//重新画布
Graphics g = Graphics.FromImage(ImageConver);
g.DrawImage(waterMark, new Rectangle(ImageConver.Width - waterMark.Width, ImageConver.Height - waterMark.Height, waterMark.Width, waterMark.Height), 0, 0, waterMark.Width, waterMark.Height, GraphicsUnit.Pixel);
g.Dispose();
waterMark.Dispose();
}
else
{
ImageConver=Image.FromFile(context.Request.MapPath(defaultImage_URL));
}
//设置输出格式
context.Response.ContentType="image/jpeg";
ImageConver.Save(context.Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);
ImageConver.Dispose();
context.Response.End();
}
public bool IsReusable
{
get
{
return false;
}
}
}
using System;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
/// <summary>
///ImageHandler 的摘要说明
/// </summary>
public class ImageHandler:IHttpHandler
{
private const string waterMark_URL = "~/Images/waterMark.jpg";
private const string defaultImage_URL = "~/Images/Default.jpg";
public ImageHandler()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
public void ProcessRequest(HttpContext context)
{
System.Drawing.Image ImageConver;
if (File.Exists(context.Request.PhysicalPath))
{
//加载文件
ImageConver = Image.FromFile(context.Request.PhysicalPath);
//加载水印图片
Image waterMark = Image.FromFile(context.Request.MapPath(waterMark_URL));
//重新画布
Graphics g = Graphics.FromImage(ImageConver);
g.DrawImage(waterMark, new Rectangle(ImageConver.Width - waterMark.Width, ImageConver.Height - waterMark.Height, waterMark.Width, waterMark.Height), 0, 0, waterMark.Width, waterMark.Height, GraphicsUnit.Pixel);
g.Dispose();
waterMark.Dispose();
}
else
{
ImageConver=Image.FromFile(context.Request.MapPath(defaultImage_URL));
}
//设置输出格式
context.Response.ContentType="image/jpeg";
ImageConver.Save(context.Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);
ImageConver.Dispose();
context.Response.End();
}
public bool IsReusable
{
get
{
return false;
}
}
}
接下来,我们要做一个很关键的配置,那就是在Web.Config文件中加入如下一句话
<httpHandlers>
<!--图片水印-->
<add verb="*" path="Images/*.jpg" type="ImageHandler"/>
</httpHandlers>
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
/// <summary>
///ImageHandler 的摘要说明
/// </summary>
public class ImageHandler:IHttpHandler
{
private const string waterMark_URL = "~/Images/waterMark.jpg";
private const string defaultImage_URL = "~/Images/Default.jpg";
public ImageHandler()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
public void ProcessRequest(HttpContext context)
{
System.Drawing.Image ImageConver;
if (File.Exists(context.Request.PhysicalPath))
{
//加载文件
ImageConver = Image.FromFile(context.Request.PhysicalPath);
//加载水印图片
Image waterMark = Image.FromFile(context.Request.MapPath(waterMark_URL));
//重新画布
Graphics g = Graphics.FromImage(ImageConver);
g.DrawImage(waterMark, new Rectangle(ImageConver.Width - waterMark.Width, ImageConver.Height - waterMark.Height, waterMark.Width, waterMark.Height), 0, 0, waterMark.Width, waterMark.Height, GraphicsUnit.Pixel);
g.Dispose();
waterMark.Dispose();
}
else
{
ImageConver=Image.FromFile(context.Request.MapPath(defaultImage_URL));
}
//设置输出格式
context.Response.ContentType="image/jpeg";
ImageConver.Save(context.Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);
ImageConver.Dispose();
context.Response.End();
}
public bool IsReusable
{
get
{
return false;
}
}
}
using System;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
/// <summary>
///ImageHandler 的摘要说明
/// </summary>
public class ImageHandler:IHttpHandler
{
private const string waterMark_URL = "~/Images/waterMark.jpg";
private const string defaultImage_URL = "~/Images/Default.jpg";
public ImageHandler()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
public void ProcessRequest(HttpContext context)
{
System.Drawing.Image ImageConver;
if (File.Exists(context.Request.PhysicalPath))
{
//加载文件
ImageConver = Image.FromFile(context.Request.PhysicalPath);
//加载水印图片
Image waterMark = Image.FromFile(context.Request.MapPath(waterMark_URL));
//重新画布
Graphics g = Graphics.FromImage(ImageConver);
g.DrawImage(waterMark, new Rectangle(ImageConver.Width - waterMark.Width, ImageConver.Height - waterMark.Height, waterMark.Width, waterMark.Height), 0, 0, waterMark.Width, waterMark.Height, GraphicsUnit.Pixel);
g.Dispose();
waterMark.Dispose();
}
else
{
ImageConver=Image.FromFile(context.Request.MapPath(defaultImage_URL));
}
//设置输出格式
context.Response.ContentType="image/jpeg";
ImageConver.Save(context.Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);
ImageConver.Dispose();
context.Response.End();
}
public bool IsReusable
{
get
{
return false;
}
}
}
接下来,我们要做一个很关键的配置,那就是在Web.Config文件中加入如下一句话
<httpHandlers>
<!--图片水印-->
<add verb="*" path="Images/*.jpg" type="ImageHandler"/>
</httpHandlers>
发表评论
-
.NET加密与解密类
2011-09-01 11:53 658using System;using System.Secur ... -
细说.NET 中 SqlDataAdapter 带参数问题
2011-07-21 18:32 774dt = new SqlDataAdapter(sql, sq ... -
抽象工厂访问不同的数据库(反射+缓存)
2011-07-02 18:30 911<appSettings> <add k ... -
初次接触.NET 反射
2011-06-27 11:32 7811.新建一个类库 命名空间为默认 类名为默认 不改 ... -
分页控件
2011-05-10 18:06 609分页控件 分页控件 分页控件 分页控件 -
页面缓存(针对某个控件)
2011-05-10 14:44 606<%@ OutputCache Duration=" ... -
sql数据库助手类
2011-05-07 13:08 672sql数据库助手类 -
给浏览器地址栏加上个性小图标
2011-05-06 14:21 816想给自己的网页加上小图标,如网易的红色的“易”字,看了百度了一 ... -
省市数据库
2011-05-05 16:13 653省市数据库省市数据库省市数据库 -
fckeditor编辑器 (已配置好)
2011-04-28 14:35 859用法如下: 1.新建一个文件upload(其他名字出错,需要 ... -
绑定控件类,(已封装gridview ,CheckBoxList,DropDownList,RadioButtonList,Repeater),其他可以自己添加
2011-04-28 14:19 735暂时支持access 。sql,其他可以自己添加 绑定控件类 ... -
各种加密算法。。已封装好
2011-04-26 18:12 801各种加密算法。。已封装好 -
实现字符串翻转
2011-04-26 10:10 679string s = "12 ... -
删除数据注意的小细节
2011-04-22 14:57 798表字段有:Content 关键字 前台部分代码: ... -
自己封装弹出、跳转页面、关闭窗口的类vs2008
2011-04-22 13:48 881自己封装弹出、跳转页面、关闭窗口的类用法举例:2005版本请去 ... -
.net版的KindEditor编辑器的使用方法
2011-04-20 09:57 827<script src="kinded ... -
后台生成静态文件(替换法)
2011-04-16 13:28 734//源码是替换掉模板中的特征字符 ... -
c# DataTable导出成EXCEL
2011-04-13 09:46 1790一、实现目标: 由一个内存表DataTable,导出字段 ... -
广告代码
2011-04-07 09:55 626广告代码 -
.net 母版一些要注意的地方
2011-04-05 16:56 695一般人都是喜欢用div+css这样命名头部 <div ...
相关推荐
5. **预览功能**:在添加水印前提供预览,确保水印效果满意后再进行批量处理。 6. **批量操作**:一次性处理大量图片,大大提高工作效率。 7. **安全无损**:在添加水印的同时,保持原始图片质量不受影响,确保...
水印可以是透明的,以不影响图片的整体视觉效果,也可以是半透明或带有颜色,以增加可见度。“尺寸处理”则表明程序具备调整图片大小的能力,这对于上传到不同的平台、适应不同设备或优化文件存储空间非常有用。 在...
本主题聚焦于“缩略图”、“透明图片水印”和“文字水印”的生成,这些都是图像处理中的关键元素,对于提升用户体验和保护版权至关重要。 首先,我们来看“高质量缩略图”。缩略图是在保持原图主要特征的基础上,将...
在IT行业中,水印是一种常见的图像处理技术,用于在图片上添加特定的标识或信息,以保护版权或增强视觉效果。"1400款+精品水印\促销水印"这个资源包显然包含了大量设计精美的水印模板,适用于各种商业促销活动。下面...
在选择清除图片水印软件时,用户应考虑其功能、易用性、效果以及价格等因素。对于个人用户,免费或轻量级的解决方案可能足够;而对于企业或专业摄影师,功能强大且能保证高质量结果的付费软件可能更为合适。在实际...
在IT行业中,图片水印工具是一种非常实用的软件应用,主要功能是帮助用户在图片上添加文字、图像或图形作为标识,以保护版权或者增加视觉效果。这些水印可以是透明的,也可以具有一定的颜色,通常位于图片的角落或者...
批量裁图打水印处理工具是一款专为图片编辑设计的实用软件,主要功能集中在批量处理图像的裁剪和添加水印。这样的工具对于摄影师、设计师、网站管理员或任何需要大量处理图片的用户来说,无疑提高了工作效率。下面...
同时,它们也可以作为视觉引导,吸引用户的注意力,比如在特价商品的图片上添加“热销”或“折扣”水印。在电商店铺设计中,水印常用于产品图片,既可以作为品牌标识,又可以避免未经许可的复制。 此外,这些PNG...
总的来说,淘宝水印素材是电商设计中的实用工具,通过合理运用这些素材,卖家可以提升店铺的专业形象,增强销售效果,并保护自己的知识产权。在使用过程中,卖家应结合自身需求,灵活搭配,确保水印与商品信息的协调...
- **产品展示**:在商品图片上添加价格、促销信息等动态水印,增强购物体验。 - **新闻报道**:在新闻图片上添加日期、来源等信息,保证信息的权威性。 - **社交媒体**:为用户上传的照片自动添加地理位置、时间戳等...
在数字时代,我们经常需要处理各种带有水印的图片或视频,这些水印可能是版权信息、logo或是其他不必要的标识。"去除水印的软件"就是为了帮助用户解决这一问题而设计的工具。这类软件通常提供了简单易用的界面,使得...
水印通常是在图像上添加的半透明或不透明的图形、文字或图案,用于标识所有权、版权或者为图片增加视觉效果。在编程中,我们可以使用GDI+(Graphics Device Interface Plus)库来实现水印的添加。 接着,缩略图生成...
进入软件的“图片”页,点击“添加图片”按钮,可以将本地电脑的图片添加进入本地图片库,同时还可以设定其标题、分类和是否添加水印。点击“上传选中图片”或者“上传全部图片”按钮,可以将本地图片库中的图片上传...
该库的设计理念是简化水印添加的过程,使得开发者无需编写大量的自定义代码就能完成复杂的水印效果。无论是简单的文本水印,还是复杂的图像叠加,RubberStamp都能轻松应对。 ### 二、核心功能 1. **文本水印**:...
对于版权保护,模板可能包含水印功能,或者在图片下载前进行版权确认。 总的来说,这个压缩包提供的HTML5模板是一个全面的解决方案,涵盖了图片售卖网站所需的各种功能和设计原则,旨在为用户提供一个既美观又实用...
这些器材在淘宝上有售,价格不等,预算有限时也可以尝试自制,如图2-5所示,效果同样可以令人满意。 5. 光线运用:光线角度的调整对于呈现商品的立体感和细节至关重要。例如,当商品顶部受光,正面阴影过重时(如图...
- 防止盗链可以通过在图片上添加水印等方式实现,相对简便。 **最佳实践案例**: - **亚马逊**: 亚马逊的产品图片橱窗设计非常出色,不仅可以展示普通的产品图片,还能够根据不同的产品特性进行定制化设计。比如,...
这个工具的独特之处在于它能够免费提供服务,与同类软件如exif wmarker相比,具有一定的价格优势。在处理照片时,PrintExifDate能够自动读取JPEG格式的数码照片中的Exif日期信息,这是一项重要的元数据,通常记录了...
- **文件管理**:在进行批量操作前,最好备份原始图片,以防万一处理效果不满意。 - **参数设置**:根据实际需求调整缩放比例和其他处理参数,避免过度压缩导致画质损失。 - **性能优化**:处理大量图片时,确保电脑...
6.查看图片实际效果图 7.复制文件地址到剪贴板 8.复制图片代码到剪贴板 9.点击关闭图片信息页面 10.文件全选功能 11.图片批量复制 12.图片批量删除 13.图片批量转移 14.信息分页功能 15.拷贝网络地址到剪贴板 16....