首页 > 编程语言 >C# 如何添加图片水印?

C# 如何添加图片水印?

时间:2023-04-11 19:44:06浏览次数:56  
标签:src img C# System 水印 添加 using

C# 如何添加图片水印?
原文链接:https://www.cisharp.com/archives/254.html

有时我们需要在图像上添加水印。例如,在图像上添加版权或名称。我们可能还需要在文档中创建水印。接下来就来讲一下 C# 如何在图像上添加水印。首先,将需要添加水印的图片放在程序运行目录,水印示例图片具体如下
测试添加水印图片.png

测试添加水印图片.png

其次,在项目中添加“System.Drawing.dll”引用
添加图片引用.png

添加图片引用.png

然后,引用using System.Drawing,为图片添加水印代码如下

using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace YlqfTest
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            //设置目标图片路径
            string src_path = "cstp.jpg";
            //设置保存位置
            string dst_path = "cisharp.jpg";
            //读取目标图片
            System.Drawing.Image src_img = (System.Drawing.Image)Bitmap.FromFile(src_path);
            //设置水印字体、字号
            Font font = new Font("Arial", 35, FontStyle.Italic, GraphicsUnit.Pixel);
            //设置水印颜色
            Color color = Color.FromArgb(255, 255, 0, 0);
            //运算水印位置
            Point atpoint = new Point(src_img.Width / 2, src_img.Height / 2);
            //初始化画刷
            SolidBrush brush = new SolidBrush(color);
            //初始化gdi绘图
            using (Graphics graphics = Graphics.FromImage(src_img))
            {
                StringFormat sf = new StringFormat();
                sf.Alignment = StringAlignment.Center;
                sf.LineAlignment = StringAlignment.Center;
                graphics.DrawString("www.cisharp.com", font, brush, atpoint, sf);
            <span class="hljs-keyword">using</span> (MemoryStream m = <span class="hljs-keyword">new</span> MemoryStream())
            {
                <span class="hljs-comment">//以jpg格式写入到内存流,完成绘制</span>
                src_img.Save(m, System.Drawing.Imaging.ImageFormat.Jpeg);
                <span class="hljs-comment">//保存到磁盘</span>
                src_img.Save(dst_path);
            }
        }
    }
}

}

最后,附上效果图
测试添加水印图片.png

测试添加水印图片.png

标签:src,img,C#,System,水印,添加,using
From: https://www.cnblogs.com/sunny3158/p/17307417.html

相关文章

  • flask-flask-sqlalchemy使用
    1.flask-sqlalchemy使用1.使用原生sqlalchemy写接口:只要一访问根目录,就会添加这本书fromflaskimportFlaskfromsettingsimportsessionfrommodelsimportBookapp=Flask(__name__)@app.route('/')defindex():'''数据暂时写死,后期可以动态添加'''s......
  • 如何在Linux中加入cron任务
    导读cron是Linux中默认的计划任务。使用cron,你可以安排一个计划(比如:命令或者shell脚本)周期性地运行或者在指定的分钟、小时、天、周、月等特定时间运行。cron在你安排不同的常规维护任务时是很有用的,比如周期性地备份、日志循环、检查文件系统、监测磁盘空间等等从命令行......
  • docker-day1——docker介绍、docker安装
    目录一、docker介绍1.1什么是虚拟化1.2.1docker是什么1.2.2容器与虚拟机比较1.2.3Docker的一些概念1.2.3.1Docker服务器与客户端1.2.3.2Docker镜像与容器1.2.3.3Registry(注册中心)二、docker安装三、作业一、docker介绍1.1什么是虚拟化在计算机中,虚拟化(英语:Virtualiza......
  • 学习笔记396—自定义Docker镜像推送到Docker Hub实战
    自定义Docker镜像推送到DockerHub实战云原生探索的必经之路—容器化,而容器化目前最主流的技术莫过于Docker了,因为之前也大量的输出过Docker相关的技术博客,如果感兴趣的话可以直接访问专栏:​​《探索云原生》​​,按需学习哦。这篇文章还是从Docker入手,从0开始讲述下如何将自己的D......
  • Java 生成水印图片
    Java生成水印图片原文链接:https://blog.csdn.net/qq_42151956/article/details/121976565工具类返回BufferedImage,写入文件生成水印图片,可见代码一、核心代码/***生成背景透明的文字水印**@paramwidth生成图片宽度*@paramheight生成图片高度*@param......
  • 离线安装Docker、docker-compose、harbor、rancher、jenkins
    全文重点参考:https://blog.csdn.net/yuyangchenhao/article/details/117573732部署环境:1.centos72.ubuntu22.043.树莓派(这部分另写)离线环境下部署。0.前期准备  本文使用了上面博客提供的全部文件,可自行下载:https://pan.baidu.com/s/1Vp8R0Ac8KLHw2KlOiqtK8A......
  • 基于Matlab的数字水印设计——基于空域的水印处理系统
    基于Matlab的数字水印设计——基于空域的水印处理系统原文链接:https://blog.csdn.net/yl624624/article/details/119966213MATLAB数字水印处理系统【LSB,界面GUI】摘要数字水印(DigitalWatermarking)技术是我们生活中经常见到的信息隐藏技术。它将一些标识信息(即数字水印......
  • flask-sqlalchemy,flask-migrate
    目录flask-sqlalchemy使用flask-migrateflask-sqlalchemy使用把sqlalchemy集成到flask中使用models#导入fromsqlalchemyimportcreate_enginefromsqlalchemy.ext.declarativeimportdeclarative_basefromsqlalchemyimportColumn,Integer,String,Text,ForeignKe......
  • 数字水印_最低有效位算法
    数字水印_最低有效位算法原文链接:https://blog.csdn.net/chengfenglee/article/details/123771536最低有效位(LeastSignificantBit.,LSB)指的是一个二进制数中的第0位(即最低位)最低有效位信息隐藏指的是,将一个需要隐藏的二值图像信息嵌入载体图像的最低有效位,即将载......
  • 阿里云 - 连接不同VPC方案
    前言阿里云不同VPC之间互通的方法,共4种,仅供参考。 VPC互联云企业网(CEN)在您使用云企业网进行跨VPC互联时,您需要提前做好网络规划,确保需要互通的网段没有重叠。云企业网通过转发路由器帮助您在跨地域或同地域VPC之间搭建私网通信通道。转发路由器通过Hub-Spoke的连接方式,只......