精华内容
下载资源
问答
  • 制作图片水印

    2013-01-17 18:54:36
    制作图片水印
  • java 制作图片水印代码 图片水印 水印
  • 轻轻松松制作图片水印,防止他人使用你的图片
  • canvas制作图片水印

    千次阅读 2018-08-30 11:46:11
    制作水印的几个步骤 在html中准备好canvas标签 将图片绘制到canvas元素上 向图片上添加水印 canvas标签 <canvas id="myCanvas" width="500&...

    概述

    以前都是后端同学来处理的,现在有了canvas,
    前端同学也可以做出水印来了,
    而且要比后端同学做的要精美漂亮。

    制作水印的几个步骤

    1. 在html中准备好canvas标签
    2. 将图片绘制到canvas元素上
    3. 向图片上添加水印

    canvas标签

    <canvas id="myCanvas" width="500" height="500">
        你的浏览器不支持canvas标签,请使用最新版的chrome浏览器
    </canvas>

    将图片绘制到canvas

    加载图片

    // 通过ajax从后台获取,这里直接使用一个图片
    var img = new Image();   
    img.src = './img/bg.jpg'; 

    将图片绘制到canvas

    img.onload = function(){ //图片加载完成后
        var canvas = document.getElementById("myCanvas");
        // 获取canvas句柄(上下文)
        var ctx = canvas.getContext("2d");
        // 绘制图片
        ctx.drawImage(img,0,0);
    }

    向图片上添加水印

    在onload函数中

    // 绘制水印
    ctx.font="20px Microsoft Yahei";
    ctx.fillStyle = "rgba(255,255,255,0.5)";
    ctx.fillText("my images",100,100);

    参考文章
    - canvas实现平铺水印

    canvas应用
    - 粒子效果

    展开全文
  • 这 篇教程教大家利用一般处理程序(Handler)制作图片水印,这种水印的优点是一经修改全站适用,而且不改变原来的图片。 制作水印分为两种方法,一种是利用局部Handler,给指定路径的图片添加水印;另一种是利用...

    做网站的时候经常需要将图片加上网站名称的水印。这样做可以使别人转载图片的时候出现图片出处 ,利于网站宣传。但是如果利用ps来一个一个加水印工作量非常浩大,而且修改了之后就没法还原。这 篇教程教大家利用一般处理程序(Handler)制作图片水印,这种水印的优点是一经修改全站适用,而且不改变原来的图片。

    制作水印分为两种方法,一种是利用局部Handler,给指定路径的图片添加水印;另一种是利用全局Handler。前者可以灵活的选择指定的图片添加水印,但是不方便的是每次做链接的时候都要 加入Handler地址,不利于整体修改。而后者是指定文件夹里的图片都加水印。

    一、局部Handler:

    1.添加一般处理程序WaterMarkHandler.ashx。

    复制代码
    <%@ WebHandler Language="C#" Class="WaterMarkHandler" %>
     
    using System;
    using System.Web;
    using System.IO;
    using System.Drawing;
     
    public class WaterMarkHandler : IHttpHandler {
        string waterPath = "~/images/1/WaterMark.png";//水印图片路径
        string defaultPath = "~/images/1/default.jpg";//默认图片路径
       
        public void ProcessRequest (HttpContext context) {
            string coverPath =context.Server.MapPath(context.Request.Params["path"]);
            Image cover;
            if (File.Exists(coverPath))
            {
                //加载图片
                cover = Image.FromFile(coverPath);
                //加载水印图片
                Image water = Image.FromFile(context.Request.MapPath(waterPath));
                //实例化画布
                Graphics g = Graphics.FromImage(cover);
                //绘制图片
                g.DrawImage(water, new Rectangle(cover.Width - water.Width, cover.Height - water.Height, water.Width, water.Height), 0, 0,   water.Width,water.Height,GraphicsUnit.Pixel);
                //释放画布
                g.Dispose();
                //释放水印
                water.Dispose();
            }
            else//没有图片,显示默认图片
            {
                cover = Image.FromFile(context.Request.MapPath(defaultPath));
            }
            context.Response.ContentType = "image/jpeg";
            cover.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
            cover.Dispose();
            context.Response.End();
        }
     
        public bool IsReusable {
            get {
                return false;
            }
        }
     
    }
    复制代码

    2.在aspx页面中调用HttpHandler:

    <img src="WaterMarkHandler.ashx?path=images/9787115161321.jpg" />

    这样当Image控件访问Handler的时候就可以输出图片了。

    二、全局Handler:

    这个方法不需要创建HttpHandler.ashx,只需要在App_Code文件夹里面创建一个类即可,然后在配置文件中指定这个类,而在aspx访问图片的页面不需要任何改变:

    1.配置Web.config:

        <system.web>
            <compilation debug="true" targetFramework="4.0" />
            <httpHandlers>
                <add verb="*" path="images/*.jpg" type="WaterMarkHandler" />
            </httpHandlers>
        </system.web>

    2.全局Handler WaterMarkHandler的代码:

    复制代码
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Drawing;
    using System.IO;
     
    /// <summary>
    ///CoverHandler 的摘要说明
    ///1.配置配置文件,以捕获图片的访问请求
    ///2.创建类文件CoverHandler.cs
    ///3.实现IHttpHandler接口的方法
    /// </summary>
    public class WaterMarkHandler : IHttpHandler
    {
        public WaterMarkHandler()
        {
            //
            //TODO: 在此处添加构造函数逻辑
            //
        }
        //4. 设置不能允许重用
        public bool IsReusable
        {
            get { return false; }
        }
        //5. 编写最终处理程序
        public void ProcessRequest(HttpContext context)
        {
            //1 获取封面图片,水印图片,默认图片的路径
            string coverPath = context.Request.PhysicalPath;
            string waterPath = context.Server.MapPath("~/images/1/default.jpg");//水印图片
            string defaultPath = context.Server.MapPath("~/images/1/default.jpg");//默认图片
     
            //2.绘制图片
            Image Cover;//定义封面图片对象
            if (File.Exists(coverPath))// **注意:根据物理路径进行判断文件是否存在**
            {
                //2.1 加载封面图片
                Cover = Image.FromFile(coverPath);
                //2.2 加载水印图片
                Image water = Image.FromFile(waterPath);
                //2.3实例化画布  **已封面图片作为画布**
                Graphics g = Graphics.FromImage(Cover);
                //2.4绘制封面图片
                g.DrawImage(water,              //水印图片
                            new Rectangle(Cover.Width - water.Width, Cover.Height - water.Height, water.Width, water.Height),
                            0,                  //横向偏移
                            0,                  //纵向偏移
                            water.Width,        //绘制宽度
                            water.Height,       //绘制高度
                            GraphicsUnit.Pixel);//画笔大小  
                //2.5 释放画布,水印
                g.Dispose();
                water.Dispose();
            }
            else//如果图片不存在,使用默认图片
            {
                //2.6 设置默认页面为封面图片
                Cover = Image.FromFile(defaultPath);
            }
            //3 设置输出内容类型
            context.Response.ContentType = "image/jpeg";
            //4 将修改的图片保存到文件流中
            Cover.Save(context.Response.OutputStream,               //要保存到的文件输出流
                        System.Drawing.Imaging.ImageFormat.Jpeg);   //保存文件类型
            //5. 释放图片
            Cover.Dispose();
            context.Response.End();
     
        }
    }
     
    //注意事项:
    //1.配置配置文件,以捕获图片的访问请求
    //2.CoverHandler.cs要在网站中创建类,并按提示保存在App_Code文件夹下,不可使用"一般处理程序";
    //3.实现IHttpHandler接口的方法;
    //4. 设置不能允许重用;
    //5. 编写最终处理程序

    转载于:https://www.cnblogs.com/fujinliang/p/7092483.html

    展开全文
  • 使用PHP制作图片水印

    2017-06-05 22:49:35
     * 图片水印  * @param string $desImg 想要打水印的大图  * @param string $waterImg 作为水印的小图  * @param string $dir 打完水印的图片保存的目录  * @param int $x 水印在大图中x坐标位置  * @...
    /**
     * 图片水印
     * @param string $desImg 想要打水印的大图
     * @param string $waterImg  作为水印的小图
     * @param string $dir 打完水印的图片保存的目录
     * @param int $x  水印在大图中x坐标位置
     * @param int $y  水印在大图中y坐标位置
     * @param int $alpha 水印透明度 0-100 值越小透明度越高
     */


    function waterMarkImg($desImg,$waterImg,$dir='./mypics',$x=10,$y=30,$alpha=30){
        //第一步,生成图像资源,由需要打水印的图片来生成图像资源
        //生成源图像资源
        //1)获取源图片信息
        $imgInfo1=getimagesize($desImg);
        //2)获取图片的后缀名
        $ext1=image_type_to_extension($imgInfo1[2],false);
        //3)生成源图像资源
        $fun1="imagecreatefrom".$ext1;
        $img=$fun1($desImg);


        //生成水印图像资源
        //1)获取源图片信息
        $imgInfo2=getimagesize($waterImg);
        //2)获取图片的后缀名
        $ext2=image_type_to_extension($imgInfo2[2],false);
        //3)生成源图像资源
        $fun2="imagecreatefrom".$ext2;
        $water=$fun2($waterImg);


        //第二步,操作图像资源
        //拷贝合并图像资源,打上图片水印
        imagecopymerge($img,$water,$x,$y,0,0,imagesx($water),imagesy($water),$alpha);
        //第三步,输出并保存图像
        $outFun='image'.$ext1;
        if(!file_exists($desImg)){
            mkdir($desImg);
        }
        $outFun($img,$dir.'/waterImg_'.basename($desImg));
        //第四步,销毁图像资源,释放内存
        imagedestroy($water);
        imagedestroy($img);


    }
    展开全文
  • 图片水印生成器,可以给指定图片文件或者目录添加水印,水印支持自定义文本、位置、颜色、大小。 # -*- encoding=utf-8 -*- import time from PIL import Image, ImageDraw,ImageFont,ImageEnhance """图片水印...

    制作一个水印生成器,方便训练水印图片数据采集。
    图片水印生成器,可以给指定图片文件或者目录添加水印,水印支持自定义文本、位置、颜色、大小。

    
    # -*- encoding=utf-8 -*-
    import time
    from PIL import Image, ImageDraw,ImageFont,ImageEnhance
    
    """图片水印生成器,自定义文字,颜色,大小,位置"""
    
    
    # 横向上方水印
    def auto_make_watermark1(filepath,content,color,savefilepath):
        """
        :param filepath: 图片路径
        :param content: 水印文字
        :param color: 水印颜色
        :param savefilepath: 保存路径
        :return:
        """
        image = Image.open(filepath).convert('RGB')
        draw = ImageDraw.Draw(image)
        font=ImageFont.truetype("simsun.ttc", 40, encoding="unic",index=1)  # 设置水印字体
        draw.text((80, 200), content,color, font) # 设置水印位置
        image.save(savefilepath)
    
    
    
    
    # 横向中间水印
    def auto_make_watermark2(filepath,content,color,savefilepath):
        """
        :param filepath: 图片路径
        :param content: 水印文字
        :param color: 水印颜色
        :param savefilepath: 保存路径
        :return:
        """
        image = Image.open(filepath).convert('RGB')
        draw = ImageDraw.Draw(image)
        font=ImageFont.truetype("simsun.ttc", 40, encoding="unic",index=1)  # 设置水印字体
        draw.text((80, 400), content,color, font)   # 设置水印位置
        image.save(savefilepath)
    
    
    
    
    # 横向最下方水印
    def auto_make_watermark3(filepath,content,color,savefilepath):
        """
        :param filepath: 图片路径
        :param content: 水印文字
        :param color: 水印颜色
        :param savefilepath: 保存路径
        :return:
        """
        image = Image.open(filepath).convert('RGB')
        draw = ImageDraw.Draw(image)
        font=ImageFont.truetype("simsun.ttc", 40, encoding="unic",index=1)  # 设置字体
        draw.text((80,image.size[1]-150), content,color, font) # 设置水印位置
        image.save(savefilepath)
    
    
    
    
    # 横向中间倾斜水印45度
    def auto_make_watermark4(filepath,content,color,savefilepath,radio):
        """
        :param filepath: 图片路径
        :param content: 水印文字
        :param color: 水印颜色
        :param savefilepath: 保存路径
        :param radio: 水印倾斜角度
        :return:
        """
        im = Image.open(filepath)
        watermark = Image.new('RGBA', im.size)
        draw = ImageDraw.Draw(watermark, 'RGBA')
        font = ImageFont.truetype("simsun.ttc", 40, encoding="unic", index=1)
        # x y 坐标
        draw.text((80, 400), content, font=font,  fill=color)
        # 旋转45度
        watermark = watermark.rotate(radio, Image.BICUBIC)
        # 透明的
        alpha = watermark.split()[3]
        alpha = ImageEnhance.Brightness(alpha).enhance(0.7)
        watermark.putalpha(alpha)
        # 合成新的图片
        image2 = Image.composite(watermark, im, watermark)
        image2.save(savefilepath)
    
    
    
    
    
    if __name__ == '__main__':
        time1=time.time()
        filepath=r'F:/img_spam/python添加水印/10064003738101263000320010013284.jpg'
    
        savefilepath='F:/img_spam/python添加水印/生成/'
        text="诚招发单人,vx:18668124728"
        colors=['red','green','black']
    
        for color in colors:
            auto_make_watermark1(filepath,text,color,savefilepath+'10064003738101263000320010013285'+'_'+color+'_'+'top'+'.jpg')
            auto_make_watermark2(filepath, text, color,savefilepath + '10064003738101263000320010013285' + '_' + color+'_' +'mmddle'+'.jpg')
            auto_make_watermark3(filepath, text, color,savefilepath + '10064003738101263000320010013285' + '_' + color +'_'+ 'down' + '.jpg')
            auto_make_watermark4(filepath, text, color,savefilepath + '10064003738101263000320010013285' + '_' + color+'_' + 'angle' + '.png',45)
            auto_make_watermark4(filepath, text, color,savefilepath + '10064003738101263000320010013285' + '_' + color + '_' +'angle_50' + '.png', -50)
    
        time2=time.time()
        print('总共耗时:' + str(time2 - time1) + 's')
    
    
    

    在这里插入图片描述

    展开全文
  • 何保护您发布在网上的图片?给图片加上一个自己独特的标识是一个不错的办法。不用打开庞大缓慢的Photoshop,试试PhotoMark吧!PhotoMark 是一款专门给图象加水印功能的工具,可以快速,准确,方便的添加您的独特标识...
  • 开始使用七牛云储存现在越来越多的人开始使用七牛云储存来存放自己的图片、缓存等,今天,我们来探讨一下如何使用七牛来定制输出的图片,制作图片水印,以及输出缩略图。步骤 1. 登录七牛,进入后台管理界面,选择...
  • Easy Watermark制作图片电影的水印,简单易学,很容易上手!
  • 我们经常需要给喜爱的图片加上具有自己特色的水印标志,以对这个图片宣誓我们对这幅图片的占有权。怎么用ps制作呢,下面是制作方法与步骤: 第一步:打开ps(这里有用的ps版本是cs6),打开一幅图片,或者是新建一幅...
  • java 制作图片水印

    2012-04-12 22:58:29
    * 打印文字水印图片 * * @param pressText * --文字 * @param targetImg -- * 目标图片 * @param fontName -- * 字体名 * @param fontStyle -- * 字体样式 * @param color -- * ...
  • Java 制作图片水印

    2011-02-25 13:01:00
     //水印文件   Image src_biao = ImageIO.read(new File(pressImg));   int wideth_biao = src_biao.getWidth(null);   int height_biao = src_biao.getHeight(null);   g.setComposite(AlphaComposite....
  • 在canvas出现之前,项目中的图片添加水印的需求,必定是后端同学们来处理的,但是canvas出来之后,前端终于可以站出来说,这个需求,交给我来!壮哉我大前端~,上周的任务就是在前端处理水印的效果,这个效果最重要...
  • 由两张图片合成一张带有水印图片 UIImage *bgImage = [UIImage imageNamed:bg]; // 1.创建一个基于位图的上下文(开启一个基于位图的上下文) UIGraphicsBeginImageContextWithOptions(bgImage.size, NO, 0.0); // ...
  • 添加文字水印和添加图片水印 代码测试片段: using  System; using  System.Collections.Generic; using  System.Text; using  Pixysoft.Drawing; using  System.Drawing; namespace  Pixysoft.Iter....
  • 图片水印制作软件

    2012-08-20 14:54:35
    图片水印制作软件
  • 1.制作文字水印,示例如下: 如果你在显示图片出现如下情况: 可以确定你的编码格式有问题,建议你调试程序,将程序编码格式统一设置。上述实现代码: fontMark.php文件: /* * 打开图片 */ //1.配置图片路径...
  • 制作水印图片

    2019-07-04 14:08:24
    水印如果是字符串制作水印图片制作字符串都类似 利用imageString就可以做到 下面这个主要演示怎么把png图片作为水印 需要注意的是这两个函数 getimagesize(); //参数为文件所在的路径 // 返回一个包含图片...
  • PS制作水印图片 水印制作教程 简单方便实用
  • 主要为大家详细介绍了PHP缩略图生成和图片水印制作过程,php实现水印添加与缩略图生成的相关步骤,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,198
精华内容 2,879
关键字:

如何制作图片水印