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),
                        0, 0, 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, 0, 0, imgSrc.Width, imgSrc.Height);
                using(Font f=new Font("宋体",20))
                {
                    using (Brush b = new SolidBrush(Color.Red))
                    {
                        string addText = "我的地盘我做主";
                        g.DrawString(addText, f, b, 100,20);
                    }
                }
            }
            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>
时间: 2024-10-07 02:20:10

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

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

ASP.NET(C#)图片加文字.图片水印 一.图片上加文字: //using System.Drawing; //using System.IO; //using System.Drawing.Imaging; private void AddTextToImg(string fileName,string text) { if(!File.Exists(MapPath(fileName))) { throw new FileNotFoundException("The file don't

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

这个需求可能有时候会碰到,比如自己的照片加版权,打水印等 网上的方法,有不少感觉不全对,或者需求不是特全,这里我总结了3种场景下的需求: 1.本地图片合成文字 2.本地图片合成图片 3.网络图片先下载再合成图片 效果图: 这里的合成的size大小,我都是随便写的,没特意计算,大家可以按实际需求自定义. 代码部分: /** 图片合成文字 @param img <#img description#> @param logoText <#logoText description#> @r

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

需求 需求是要做一个编辑文字的页面.用户在网页端写文字,文字区域是个矩形框,用户可以通过下方的拖动条调节文字大小. 如下图: 提交数据的时候前端传文字区域的左上角和右下角定位给后台.因为前端的字体大小单位与后端没什么关系,所以不能直接传字体大小,也就是后端要根据矩形区域以及文字内容来自己推算用什么样的字体大小合适. 简单说就是知道文字的矩形区域,以及文字内容,要让文字内容根据矩形区域大小调整到适合的字体大小能比较合适地填满这个区域. 分析&思路 Graphics 类有个 MeasureStrin

图片上的手写文字怎样才能转换成文档文字?

不知道大家有没有曾遇到过将手写的图片内容转化成文字的情况,那么大家都是怎样操作的呢?不会和小编一样将图片上的文字一点一点的敲打成文档文字的吧!其实生活中是有简单的方法的,今天小编就将这个简单的操作方法分享给大家. 第一步:首先,我们需要打开一个OCR文字识别工具,如果小伙伴们的电脑上没有这样的软件的话,可以下载一款哈. 第二步:在OCR文字识别功能的页面中,从多种功能中选择"手写字体识别",并且需要在手写字体识别的页面中上传图片,这样就可以进行手写字识别的操作了. 第三步:将手写字体的

C#图片上写文字

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Drawing; namespace BitMap { /// <summary> /// Image 的摘要说明 /// </summary> public class Image : IHttpHandler { public void ProcessRequest(HttpConte

如何识别JPG图片转文字,简单的方法讲解

相信办公中的小伙伴们经常会遇到图片转文字的问题,需要将图片上的文字应用到别的地方去,但是图中的文字又不可以直接进行复制粘贴,接下来小编就来给大家分享一种识别JPG图片转文字的简单操作方法,大家可以以此来参考下. 辅助工具:迅捷OCR文字识别软件 操作步骤: 1:在电脑中打开接下来使用到的OCR文字识别软件,点击图片局部识别板块. 2:进入图片局部识别板块后,点击添加文件按钮选择一张所需转换的文字图片并打开. 3:图片打开后可以通过下方一排小工具来简单对图片进行"移动""放大&

进行图片转文字简单方法是什么

由于科技的快速发展,进行图片转文字不仅可以在电脑上实现了,在手机上同样也能实现,其实二者的方法是差不多的,都是借助文字识别工具去实现.专业的图片转文字软件和方法,可以帮助我们节约很多时间,提高我们的工作效率,在网上有一个迅捷OCR文字识别软件的工具,可以帮助我们便捷的实现图片转文字相关问题.工具的特点简介:这个OCR文字识别工具可以识别很格式的图片.方法也是很简单的,文字识别工具的工作原理是利用光学字符技术去实现图片转文字.电脑实现图片转文字的方法:第一步:在电脑上打开文字识别工具,大家可以通过

iOS开发——UI高级OC篇&amp;自定义控件之调整按钮中子控件(图片和文字)的位置

自定义控件之调整按钮中子控件(图片和文字)的位置 其实还有一种是在storyBoard中实现的,只需要设置对应空间的左右间距: 这里实现前面两种自定义的方式 一:imageRectForContentRect/titleRectForContentRect 自定义一个按钮控件在系统自带的位置设置方法中实现对应子控件位置调整 1 /** 2 3 * 设置内部图标的frame 4 5 */ 6 7 - (CGRect)imageRectForContentRect:(CGRect)contentRe

IOS 给图片添加水印(文字)

有时候上传图片要加唯一标识,简单的就是添加一个水印.这里水印我们讲文字,可以是当前系统时间.坐标.地理位置等 原理就是把一个字符串写到图片上,并且字(font)的大小由图片大小控制. 以下是封装好的一个类方法: //NavView.m + (UIImage *) addText:(UIImage *)img text:(NSString *)mark { int w = img.size.width; int h = img.size.height; UIGraphicsBeginImageCo