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. ...
随机推荐
- python中read()、readline()、readlines()区别
1.read([size])方法 read([size])方法从文件当前位置读取size个字节,若无参数size,则表示读取至文件结束位置,它范围为字符串对象 2.readline()方法 从字面 ...
- 【OF框架】在Azure DevOps中配置项目持续集成CI服务,推送镜像到Azure容器注册表
准备工作 开通Azure账号,具有开通服务权限,关键是里面要有钱. 开通Azure DevOps,能够创建组织和项目. 具备一定的DevOps知识,了解CICD概念.Docker基本操作. 一.创建& ...
- Windows 10安装
使用U盘安装操作系统教程 本教程介绍如何使用U盘安装操作系统,以安装Windows 10过程作为举例. 1 获取操作系统iso镜像文件 获取操作系统ISO镜像文件有很多途径,此处介绍从微软官网下载wi ...
- Spring 的 @Primary 注解
简单的说,就是当Spring容器扫描到某个接口的多个 bean 时,如果某个bean上加了@Primary 注解 ,则这个bean会被优先选用,如下面的例子: @Component public cl ...
- KaTex语法说明
参考链接: https://katex.org/docs/supported.html https://github.com/KaTeX/KaTeX/blob/master/docs/supporte ...
- 图片下载---使用gevent爬数据
代码: import urllib.request import gevent from gevent import monkey monkey.patch_all() def downloader( ...
- How To Install Docker On Ubuntu 18.04
Docker is an increasingly popular software package that creates a container for application developm ...
- scala 递归读取文件夹下所有的指定后缀的文件
def getFile(file:File): Array[File] ={ val files = file.listFiles().filter(! _.isDirectory) .filter( ...
- [Go] 基础系列一: for-select中的break、continue和return
break select中的break,类似c系列中的break,break后的语句不执行 for和select一同使用,有坑 break只能跳出select,无法跳出for package test ...
- python 时间等待
#coding=utf- import time t1=time.time() time.sleep() t2=time.time() print(t2-t1) 输出 3.00304102898