C# GDI+ 简单实现图片写文字和图片叠加(水印)(转)
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+ 简单实现图片写文字和图片叠加(水印)(转)的更多相关文章
- ASP.NET(C#)图片加文字、图片水印,神啊,看看吧
ASP.NET(C#)图片加文字.图片水印 一.图片上加文字: //using System.Drawing; //using System.IO; //using System.Drawing.Im ...
- 一种基于重载的高效c#上图片添加文字图形图片的方法
在做图片监控显示的时候,需要在图片上添加文字,如果用graphics类绘制图片上的字体,实现图像上添加自定义标记,这种方法经验证是可行的,并且在visual c#2005 编程技巧大全上有提到,但是, ...
- iOS 图片水印、图片合成文字或图片实现
这个需求可能有时候会碰到,比如自己的照片加版权,打水印等 网上的方法,有不少感觉不全对,或者需求不是特全,这里我总结了3种场景下的需求: 1.本地图片合成文字 2.本地图片合成图片 3.网络图片先下载 ...
- C#给图片加文字和图片的水印
/// <summary> /// WaterMark 的摘要说明 /// </summary> /// 图片加水印 /// <param name="strC ...
- Android给图片加文字和图片水印
我们在做项目的时候有时候需要给图片添加水印,水寒今天就遇到了这样的问题,所以搞了一个工具类,贴出来大家直接调用就行. /** * 图片工具类 * @author 水寒 * 欢迎访问水寒的个人博客:ht ...
- C# Word文档中插入、提取图片,文字替换图片
Download Files:ImageOperationsInWord.zip 简介 在这篇文章中我们可以学到在C#程序中使用一个Word文档对图像的各种操作.图像会比阅读文字更有吸引力,而且图像是 ...
- thinkphp 利用GD库在图片上写文字
<?php /** * Created by PhpStorm. * User: Administrator */ namespace Home\Event; use \Think\Image; ...
- C# 使用 GDI+ 给图片添加文字,并使文字自适应矩形区域
需求 需求是要做一个编辑文字的页面.用户在网页端写文字,文字区域是个矩形框,用户可以通过下方的拖动条调节文字大小. 如下图: 提交数据的时候前端传文字区域的左上角和右下角定位给后台.因为前端的字体大小 ...
- 使用Qpaint在图片上写文字
开发过程中需要实现在图片上叠加文字,可以采用Qpaint在图片上写文字,然后将图片显示在上面.再将Qlabel加到Qwidget中.效果如下 //创建对象,加载图片 QPixmap pix; pix. ...
随机推荐
- SQL SERVER-Login搬迁脚本
USE master GO IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL DROP PROCEDURE sp_hexadecimal GO CREATE PR ...
- Centos7.6进入挂载硬盘后,进入应急模式(emergency mode)而非图形模式解决方法
Centos7.6进入挂载硬盘后,进入应急模式(emergency mode)而非图形模式解决方法 话说某天我想在centos7.6中挂载个硬盘,结果刚在虚拟机中添加了一块硬盘,再次打开系统时,居然就 ...
- Django组件之modelform
Django的model form组件 这是一个神奇的组件,通过名字我们可以看出来,这个组件的功能就是把model和form组合起来,先来一个简单的例子来看一下这个东西怎么用:比如我们的数据库中有这样 ...
- Flink原理(一)——基础架构
Flink系列博客,基于Flink1.6,打算分为三部分:原理.源码.实例以及API使用分析,后期等系列博客完成后再弄一个目录. 该系列博客是我自己学习过程中的一些理解,若有不正确.不准确的地方欢迎大 ...
- Dymola — 多学科系统仿真平台
Dymola 是法国Dassault Systems公司的多学科系统仿真平台,广泛应用于国内外汽车.工业.交通.能源等行业的系统总体架构设计.指标分解以及系统功能验证及优化等.Dymo ...
- 【转】Senior Data Structure · 浅谈线段树(Segment Tree)
本文章转自洛谷 原作者: _皎月半洒花 一.简介线段树 ps: _此处以询问区间和为例.实际上线段树可以处理很多符合结合律的操作.(比如说加法,a[1]+a[2]+a[3]+a[4]=(a[1]+a[ ...
- 接口调优——WebAPI 过滤器,IIS WebDAV
目录 1.身份认证过滤器—AuthenticationFilter 2.Action 过滤器—ActionFilter 3.异常处理过滤器—ExceptionFilterAttribute 4.IS ...
- ReLU激活函数
参考:https://blog.csdn.net/cherrylvlei/article/details/53149381 首先,我们来看一下ReLU激活函数的形式,如下图: 单侧抑制,当模型增加N层 ...
- Oracle之约束
数据的完整性用于确保数据库数据遵从一定的商业的逻辑规则.在oracle中,数据完整性可以使用约束.触发器.应用程序(过程.函数)三种方法来实现,在这三种方法中,因为约束易于维护,并且具有最好的性能,所 ...
- Java中ClassLoader浅析.
一.问题 请在Eclipse中新建如下类,并运行它: 1 package java.lang; 2 3 public class Long { 4 public static void main(St ...