using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Drawing; namespace Web_PictureWaterMark
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.imgSource.ImageUrl = @"~/Image/Bear.bmp";
} //图片叠加
protected void btn_WaterMark_Click(object sender, EventArgs e)
{
string path = Server.MapPath(@"image/Bear.bmp");
System.Drawing.Image imgSrc = System.Drawing.Image.FromFile(path);
System.Drawing.Image imgWarter = System.Drawing.Image.FromFile(Server.MapPath(@"Image/Water.bmp"));
using (Graphics g = Graphics.FromImage(imgSrc))
{
g.DrawImage(imgWarter, new Rectangle(imgSrc.Width - imgWarter.Width,
imgSrc.Height - imgWarter.Height,
imgWarter.Width,
imgWarter.Height),
, , imgWarter.Width, imgWarter.Height, GraphicsUnit.Pixel);
} string newpath = Server.MapPath(@"Image/WaterMark.bmp");
imgSrc.Save(newpath, System.Drawing.Imaging.ImageFormat.Jpeg);
this.image_Water.ImageUrl = @"~/Image/WaterMark.bmp"; } //图片写字
protected void btn_FontMark_Click(object sender, EventArgs e)
{
string path = Server.MapPath(@"image/Bear.bmp");
System.Drawing.Image imgSrc = System.Drawing.Image.FromFile(path); using (Graphics g = Graphics.FromImage(imgSrc))
{
g.DrawImage(imgSrc, , , imgSrc.Width, imgSrc.Height);
using(Font f=new Font("宋体",))
{
using (Brush b = new SolidBrush(Color.Red))
{
string addText = "我的地盘我做主";
g.DrawString(addText, f, b, ,);
}
}
}
string fontpath = Server.MapPath(@"image/FontMark.bmp");
imgSrc.Save(fontpath, System.Drawing.Imaging.ImageFormat.Bmp);
this.image_Font.ImageUrl = @"~/image/FontMark.bmp"; }
}
}

————————————————————————————————————————————————————————————————————————————————————————————————————————

图片上传后,可以在上传的图片上面写上自己站点的网址,或者把自己网址的水印图片叠加到上传的的图片上来实现水印的效果。
利用C# GUI 实现起来简直是太容易了,代码如下:

.页面HTML代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Web_PictureWaterMark._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>ASP.NET C#为图片加水印</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Image ID="imgSource" runat="server" ImageUrl="~/Image/Bear.bmp" />
</div>
<div>
<asp:Button ID="btn_WaterMark" runat="server" Text="为图片添加水印效果"
onclick="btn_WaterMark_Click" />
<asp:Button ID="btn_FontMark" runat="server" Text="为图片添加文字效果"
onclick="btn_FontMark_Click" />
</div>
<div style="width:410px; float:left; margin:0px;">
<asp:Image ID="image_Water" runat="server" />
</div>
<div style="width:410px; float:left; margin:0px;">
<asp:Image ID="image_Font" runat="server" />
</div>
</form>
</body>
</html>

C# GDI+ 简单实现图片写文字和图片叠加(水印)(转)的更多相关文章

  1. ASP.NET(C#)图片加文字、图片水印,神啊,看看吧

    ASP.NET(C#)图片加文字.图片水印 一.图片上加文字: //using System.Drawing; //using System.IO; //using System.Drawing.Im ...

  2. 一种基于重载的高效c#上图片添加文字图形图片的方法

    在做图片监控显示的时候,需要在图片上添加文字,如果用graphics类绘制图片上的字体,实现图像上添加自定义标记,这种方法经验证是可行的,并且在visual c#2005 编程技巧大全上有提到,但是, ...

  3. iOS 图片水印、图片合成文字或图片实现

    这个需求可能有时候会碰到,比如自己的照片加版权,打水印等 网上的方法,有不少感觉不全对,或者需求不是特全,这里我总结了3种场景下的需求: 1.本地图片合成文字 2.本地图片合成图片 3.网络图片先下载 ...

  4. C#给图片加文字和图片的水印

    /// <summary> /// WaterMark 的摘要说明 /// </summary> /// 图片加水印 /// <param name="strC ...

  5. Android给图片加文字和图片水印

    我们在做项目的时候有时候需要给图片添加水印,水寒今天就遇到了这样的问题,所以搞了一个工具类,贴出来大家直接调用就行. /** * 图片工具类 * @author 水寒 * 欢迎访问水寒的个人博客:ht ...

  6. C# Word文档中插入、提取图片,文字替换图片

    Download Files:ImageOperationsInWord.zip 简介 在这篇文章中我们可以学到在C#程序中使用一个Word文档对图像的各种操作.图像会比阅读文字更有吸引力,而且图像是 ...

  7. thinkphp 利用GD库在图片上写文字

    <?php /** * Created by PhpStorm. * User: Administrator */ namespace Home\Event; use \Think\Image; ...

  8. C# 使用 GDI+ 给图片添加文字,并使文字自适应矩形区域

    需求 需求是要做一个编辑文字的页面.用户在网页端写文字,文字区域是个矩形框,用户可以通过下方的拖动条调节文字大小. 如下图: 提交数据的时候前端传文字区域的左上角和右下角定位给后台.因为前端的字体大小 ...

  9. 使用Qpaint在图片上写文字

    开发过程中需要实现在图片上叠加文字,可以采用Qpaint在图片上写文字,然后将图片显示在上面.再将Qlabel加到Qwidget中.效果如下 //创建对象,加载图片 QPixmap pix; pix. ...

随机推荐

  1. java一些基本算法

    本文主要介绍一些常用的算法: 冒泡排序:两两相互之间进行比较,如果符合条件就相互兑换. //冒泡排序升序 public static int[] bubblingSortAsc(int[] array ...

  2. Jenkins安装Slave节点

    在系统管理----节点管理下 创建完成后会出现slave节点启动的命令,下载agent.jar,然后启动服务 Master-slave相当于Server和Agent,master管理job和slave ...

  3. charles 手机证书下载安装

    本文参考:charles 手机证书下载安装 本文的Charles,适应windows/MAC/IOS/Android,避免抓包HTTPS失败和乱码: 用的版本是V4.1.2,其它版本原理类似: cha ...

  4. 基于GitLab CI搭建Golang自动构建环境

    基于GitLab CI搭建Golang自动构建环境 Golang发布遇到的问题 对于golang的发布,之前一直没有一套规范的发布流程,来看看之前发布流程: 方案一 开发者本地环境需要将环境变量文件改 ...

  5. git 在不同服务器主机上同步 git 仓库

    git 在不同服务器主机上同步 git 仓库 参考链接:https://opentechguides.com/how-to/article/git/177/git-sync-repos.html 1. ...

  6. Three.js入门详解

    什么是WebGL   WebGL(Web 图形库)是一种 JavaScript API,用于在任何兼容的 Web 浏览器中呈现交互式 3D 和 2D 图形,而无需使用插件.WebGL 通过引入一个与 ...

  7. React 零碎笔记

    1.对数组的操作(添加.更新.删除) const posts = [...this.state.posts]; posts.push(post); this.setState({posts}); =& ...

  8. HttpReader

    头文件: #pragma once #include <afxinet.h> class CSF_HttpDataReader { public: CSF_HttpDataReader(v ...

  9. 两数最大公约数 GCD

    原理辗转相除法. public int gcd(int i, int j) { if (i == 0 || j == 0) { return 0; } int a = 0, b = 0; if (i ...

  10. MFC的PictureControl控件上展示Halcon的窗体

    自定义函数:id是MFC窗体上的PictureControl控件的ID,此函数返回halcon的HWindow对象. HTuple initPicControl(int id); HTuple CHa ...