<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<!--给图片打水印-->
<img src="images/8996733.jpg" alt=""/>
</div>
</form>
</body>
</html>
---------------------------------------------------------------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
---------------------------------------------------------------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
/// <summary>
///CoverHandler 的摘要说明
/// </summary>
public class CoverHandler : IHttpHandler
{
//定义一些常量路径字符串
private const string WM_URL = "~/images/WaterMark.jpg";
private const string DEFAULT_URL = "~/images/default.jpg";
public CoverHandler()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
#region IHttpHandler 成员
public bool IsReusable
{
get { return false; }
}
public void ProcessRequest(HttpContext context)
{
//申请空间,保存封面
System.Drawing.Image Cover;
//判断需要显示的文件是否有效
if (File.Exists(context.Request.PhysicalPath))
{
//封面实例化,目前没有水印
Cover = Image.FromFile(context.Request.PhysicalPath);
//准备水印
System.Drawing.Image wm = Image.FromFile(context.Request.MapPath(WM_URL)); //!!!!
//开始画图
//准备将封面移动到画布上
Graphics g = Graphics.FromImage(Cover);
//画水印
g.DrawImage(wm, new Rectangle(Cover.Width - wm.Width, Cover.Height - wm.Height, wm.Width, wm.Height),
0, 0, wm.Width, wm.Height, GraphicsUnit.Pixel);
//完成后,注意要释放资源,清空画布
g.Dispose();
wm.Dispose();
}
//当文件不存在时,需要显示default.jpg
else
{
Cover = Image.FromFile(context.Request.MapPath(DEFAULT_URL)); //!!!!!
}
//准备输出给客户
context.Response.ContentType = "image/jpeg";
//Cover没有被释放,它目前存在于内存中
Cover.Save(context.Response.OutputStream, ImageFormat.Jpeg);
Cover.Dispose();
context.Response.End();
}
#endregion
}
---------------------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0"?>
<!--
注意: 除了手动编辑此文件以外,您还可以使用
Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
“网站”->“Asp.Net 配置”选项。
设置和注释的完整列表在
machine.config.comments 中,该文件通常位于
\Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration>
<configSections>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
</sectionGroup>
</sectionGroup>
</sectionGroup>
</configSections>
<appSettings/>
<connectionStrings/>
<system.web>
<!--
设置 compilation debug="true" 可将调试符号插入
已编译的页面中。但由于这会
影响性能,因此只在开发过程中将此值
设置为 true。
-->
<compilation debug="true">
<assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
<!--
通过 <authentication> 节可以配置 ASP.NET 用来
识别进入用户的
安全身份验证模式。
-->
<authentication mode="Windows"/>
<!--
如果在执行请求的过程中出现未处理的错误,
则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
开发人员通过该节可以配置
要显示的 html 错误页
以代替错误堆栈跟踪。
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</controls>
</pages>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="images/*.jpg" type="CoverHandler"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
</system.web>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="OptionInfer" value="true"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
</compilers>
</system.codedom>
<!--
在 Internet 信息服务 7.0 下运行 ASP.NET AJAX 需要 system.webServer
节。对早期版本的 IIS 来说则不需要此节。
-->
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<remove name="ScriptModule"/>
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated"/>
<remove name="ScriptHandlerFactory"/>
<remove name="ScriptHandlerFactoryAppServices"/>
<remove name="ScriptResource"/>
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</handlers>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
分享到:
相关推荐
标签同样是“一个给图片自动打水印的源代码,好用就顶哦”,这表明这个压缩包的内容专注于提供自动打水印的功能,并且期望得到用户的认可。 压缩包中的文件名列表提供了更多的信息: 1. **WaterMarkDemo.aspx**: ...
pdf 添加水印功能 java代码
"图片批量水印-支持子目录-GIF图片"这个标题表明这是一个专为处理图片水印而设计的工具,且具备处理子目录下图片以及支持GIF动态图的能力。这在很多情况下是非常实用的功能,因为很多图片往往存储在不同的文件夹及其...
Python编程-使用OpenCV和Numpy库实现图片去水印-代码 包含; 图像读取转化, 自定义点击选取水印位置, 去除水印, 图片修复 cv2是基于OpenCV的图像处理库,可以对图像进行腐蚀,膨胀等操作; Numpy这是一个强大的处理...
使用[为图片打水印.exe]-[MD5:09882f24af3c32f81f4475a290b76d4e]时, 如果出现错误,或者要求你安装.NET Framewrok v2.0 此时您需要下载微软公司的.NET Framewrok v2.0或者以上版本 此版本已经经过杀毒软件的验证!请...
在Java编程中,给图片添加水印是一项常见的需求,无论是为了版权保护还是...但以上代码已经足够作为基础,帮助你开始在Java中实现图片加水印的功能。记得在运行此代码前,确保已经正确引入了Apache Commons Imaging库。
在线图片加水印,canvas加水印,在线给图片加水印、照片上添加文字,通过前端canvas给你的证件加上水印,防止证件被盗。 演示地址:http://watermark.dxcweb.com/
微信小程序图片加水印-使用新版Canvas实现 需要在 WXML 中添加 canvas 组件。 指定 id="myCanvas" 唯一标识一个 canvas,用于后续获取 Canvas 对象。 指定 type 用于定义画布类型,本例子使用 type="2d" 示例。 ...
在本文中,我们将深入探讨如何在C#编程环境中创建文字水印和图片水印,并提供一个实际的程序实例源代码。C#是一种广泛使用的面向对象的编程语言,尤其在开发Windows应用程序和.NET框架中占据重要地位。对于图像处理...
用ASP用aspjpegwsImage组件给图片加水印
"react-watermark-module" 是一个专为此设计的React组件,它允许开发者轻松集成图片水印和文字水印功能。下面将详细阐述这个组件的核心特点、用法以及如何在实际项目中应用。 一、核心特点 1. **灵活性**:react-...
这个主题的标题“给一张图片加水印(源代码)”表明我们将探讨如何通过编程实现这一功能。描述中提到的“含源代码”意味着我们将深入到实际的代码实现层面。标签“给图片加水印”、“水印”和“加水印”进一步确认了...
我们将讨论两种主要类型的水印:图片水印和文字水印,并介绍如何根据图片的缩放比例自动调整水印的大小、透明度、位置以及图像的质量。 首先,我们需要了解水印的基本概念。水印是嵌入到图像中的一种隐蔽标志,它...
"DCT-SVD水印代码"指的是利用离散余弦变换(DCT)和奇异值分解(SVD)这两种核心技术来实现数字水印嵌入和检测的MATLAB程序。下面将详细介绍这两种技术及其在水印算法中的应用。 1. 离散余弦变换(DCT) 离散余弦...
在Java编程环境中,打水印是一项常见的任务,用于保护或标识图像或文档。水印可以是文字或图片,用于在不显著影响原始内容的情况下添加版权信息、公司标识或其他标识符。下面将详细介绍如何使用Java来实现文字和图片...
请注意,实际操作时,你需要替换上述代码中的'原始图片文件名.jpg'为你实际的图片文件名,并根据需求调整水印的位置、大小、颜色和透明度。 总结,通过MATLAB的图像处理工具箱,我们可以轻松地为图片添加水印,从而...
使用Icepdf 5.0.6 P01最新版PDF转图片,附带jar包和转换demo实例工具类,并且完美去水印。详细去水印方法请看我的博客文章http://blog.csdn.net/wangpeng468/article/details/37810445
总之,这个压缩包提供了一个学习ASP.NET中图像处理和水印功能的良好资源,通过源代码和视频教程,开发者可以提升自己的技能,将水印功能应用于各种Web应用程序,如在线图片编辑工具、内容管理系统或是个人博客平台。
2. 水印图像创建:如果水印是文字或简单图形,我们可以直接在代码中生成;如果是位图水印,我们需要先加载这个位图文件,然后将其透明度调整到合适的值。 3. 图像坐标系统:在易语言中,我们需要知道如何定位水印在...
在数字图像处理领域,去水印是一项常见的需求,无论是个人还是专业摄影师,都有可能需要去除照片或图片中的水印、logo或者其他不想要的元素。"轻松去水印-完美出去水印工具"就是针对这类需求设计的专业软件。它提供...