精华内容
下载资源
问答
  • 平时上传图片到网站时,大家没有想过给这些图片加上属于自己的水印内容?当我们将一些精心准备好的图片上传到网上某个平台时,发现有些人直接“复制粘贴”了自己的美图,将其占为己,这个时候心里很不是滋味吧!...

    平时上传图片到网站时,大家有没有想过给这些图片加上属于自己的水印内容?

    当我们将一些精心准备好的图片上传到网上某个平台时,发现有些人直接“复制粘贴”了自己的美图,将其占为己有,这个时候心里很不是滋味吧!现在是个大数据的互联网时代,你的东西未必都是“你的”,有些东西你没办法“声明”,告诉大家这是“你的”。

    bb07180f5b6887677212ce0810a08c45.png

    那么,有没有办法防止这种情况的发生呢?那也不是没有,我们可以给自己的图片添加自己专属水印就可以了,水印可以是文字也可以是特别有象征性的logo,具体怎么操作呢,有没有简单又高效的办法?下面,请跟随小编一起来看看——如何快速给图片添加文字水印

    操作步骤:

    第一步、打开软件后,左侧选择“添加水印”功能。

    9d119b38d5fd4a5b40a07c42acda6fe6.png

    第二步、接着,点击“添加文件”选择添加图片。

    ac54453f8ac3fc02d81d384c85a19bdc.png

    第三步、如图,在类型中可选择两种水印类型,分别是文字和图片水印。

    a811c87dc9ff09c5ac2aa6a07e0ec582.png

    第四步、这里以图片水印为例,点击此按钮可将图片水印添加进来。

    d14c783538b7725b901b6978d18c601f.png

    第五步、这里可直接预览效果,水印的样式是可调整的。

    295cebc48b3ac32798238b5ed4d326d4.png

    第六步、软件默认的文件导出位置是原文件夹,勾选“自定义”按钮可更改。

    811b2af736c91f2caf3c3c0b719c396f.png

    第七步、最后,直接点击“开始转换”即可。

    35d5e35a72a89b18b74bf8582432724f.png

    如图,以下就是添加图片水印后的图片,效果还不错吧!

    df8946c1d33113cf238bcc3e837c5346.png
    展开全文
  • 不知道目前多少人会给自己的图片添加水印,大家都知道给图片添加水印什么好处吗?图片添加水印的好处:1、水印可以让您在共享照片时进行曝光。由于您的名字在图像上,人们会了解您。2、水印保护您的工作。人们...

    不知道目前有多少人会给自己的图片添加水印,大家都知道给图片添加水印都有什么好处吗?

    图片添加水印的好处:

    1、水印可以让您在共享照片时进行曝光。由于您的名字在图像上,人们会了解您。

    2、水印保护您的工作。人们无法窃取你的工作,就像你的名字一样。

    19ea20c2ba6912d6f7fb9be317b7297c.png

    如果你的工作性质就是每天拍下很多照片,然后再整理一大堆的图片,这时候无妨给自己拍摄的图片添加水印,然后再上传到网站上。今天这里就来教大家如何批量给图片添加水印,方法很简单,下面一起来看看吧!

    推荐工具:闪电图片格式转换器

    操作步骤:

    第一步、双击打开图片处理器,在左侧选择“添加水印”,然后点击“添加文件”将图片上传到软件。

    1eacef2422255136ea33112ab8124ab8.png

    第二步、如图,在类型中,选择需要的水印类型,分别有文字和图片两种可选。

    9db3941774fe9acc02547ab3751245b3.png

    第三步、这里以图片水印为例,点击添加后可根据自己的需要调整位置大小等。

    4ecc1c81662f8c81d4bb7e700a78e7e7.png

    第四步、软件默认的文件导出位置,选择“自定义”按钮可更换位置。

    0191a381d1772b38b5c0f3de9bb94930.png

    第五步、最后,直接点击“开始转换”即可。

    96c32eba4f60f5f7cd59f76402081856.png

    第六步、如下图示,以下就是添加好的最终效果。

    2c42db5f244abc3235f8fce118f17e8c.png
    展开全文
  • 要求对HTML页面的某个区域实现截屏为图片,以供分享保存。 比如一个DIV中table数据是用户点击,ajax获取,dom操作,js计算等等操作生成的一组数据,这些数据用户需求保存下来。 如图: 截图效果类似: ...

    相信有不少人遇到过这种需求:
    要求对HTML页面的某个区域实现截屏为图片,以供分享保存。
    比如一个DIV中table数据是用户点击,ajax获取,dom操作,js计算等等操作生成的一组数据,这些数据用户有需求保存下来。

    如图:
    这里写图片描述

    截图效果类似:
    这里写图片描述

    需求分析:点击导出结果,实现table投注策略导出

    html代码

    <script type="text/javascript" src="{$Think.LEC_URL}js/html2canvas.min.js"></script>
    <div class="tabbox">
    <table id="plantable">  
      <tr class="head">
        <td nowrap>序号</td>
        <td nowrap>中否</td>
        <td nowrap>倍数</td>
        <td nowrap>当期投</td>
        <td nowrap>累计投</td>
        <td nowrap>本期中</td>
        <td nowrap>本期赚</td>
        <td nowrap>净赚</td>
        <td nowrap>下期倍数</td>
        <td nowrap>余额</td>
        <td nowrap>累计中</td>
      </tr>  
      <tbody id='tbody'></tbody>
    </table>
    </div>
    <a id="exportdata" class="ttright bghcolor" onclick="taoge();">导出结果</a>
    //以下标签为辅助,各有作用
    <div id="hidepic" style="display:none;"></div>
    <div style="display:none;">
    <canvas id="myCanvas">
    </canvas>
    </div>
    <a style="display:none;" class="down" href="" download="downImg.jpg">下载</a>

    js图片导出,图片编辑,触发下载保存等

    function taoge(){
      if($('#tbody').text()==''){
        common.tipOpen('请先进行投注策略计算,再进行结果导出!',false,true,2);
        return false;
      }
      $('body').scrollTop(0); //移动端使用:此处可以弥补截图区域过大导致页面有滚动条后,产生的网页截图不完整,不可见区域截取不到
      html2canvas(document.querySelector('#plantable'),{
            allowTaint:true,
            height: $("#plantable").outerHeight() + 20
        }).then(function(canvas) {
          $('#hidepic').html(canvas);   //生成的原始canvas画布保留以备其他使用
          if(common.ismobile()){  //移动端判断
            var img = new Image();
            var canvas1=document.getElementById("myCanvas");
            // 设置宽高
            canvas1.width=canvas.width;//注意:没有单位
            canvas1.height=canvas.height;//注意:没有单位
            var ctx=canvas1.getContext("2d");      
            if(img.complete) {  
                img.src = canvas.toDataURL(); //由于图片异步加载,一定要等img加载好,再设置src属性
                img.onload = function() {  
                  // 绘制图片
                  ctx.drawImage(img,0,0);    
                  // 绘制水印
                  ctx.font="20pt Calibri";  //水印文字添加
                  ctx.fillStyle = "rgba(0,0,0,0.8)";
                  ctx.fillText("提示:长按保存投注记录",250,80);
                  ctx.strokeText("提示:长按保存投注记录",250,80);
                  //canvas转换成url,然后利用a标签的download属性,直接下载,绕过上传服务器再下载
                  document.querySelector(".down").setAttribute('href',canvas1.toDataURL());
                  $('.down')[0].click(); //a标签触发下载 注意triggle('click')是不能使用的
                }
            }
          }else{
            document.querySelector(".down").setAttribute('href',canvas.toDataURL());
            $('.down')[0].click();
          }         
    
      });
    }
    展开全文
  • cytoscape.js实现导出图片pngcytoscape.js导出样例展示cytoscape.js `Export `方法 [详情](https://js.cytoscape.org/#core/export)`cy.png()` 导出png构造方法参数详解注意事项`cy.jpg()` 导出jpg(jpeg)别名构造...

    cytoscape.js

    Cytoscape.js是一个用JS编写的开源图库. 您可以使用Cytoscape.js进行图形分析和可视化展示.

    Cytoscape.js允许您轻松显示操作丰富的交互式图形. 因为Cytoscape.js允许用户与图形交互, 并且允许客户端在用户事件中挂载钩子, 所以Cytoscape.js可以轻松集成到您的应用程序中, 特别是因为Cytoscape.js支持桌面浏览器, 如Chrome, 和移动浏览器, 如iPad. Cytoscape.js包括您期望开箱即用的所有手势, 包括捏合缩放, 框选择, 平移等等.

    本文介绍通过Cytoscape.js, 将Cytoscape.js展示的内容导出为png图片. 内容导出同时实现全局导出与局部导出两种方式.

    导出样例展示

    原始页面

    • 工具栏右侧两个按钮, 分别代表局部导出, 全图导出.
    • 局部导出是指导出按住Shift键, 通过鼠标左键框选的区域.
    • 全图导出是指导出图中所有完整关系网络, 包括关系网络内, 但展示区域外的所有内容.
    • 导出时, 可以适当配置一下内容, 使导出的内容带有底部水印.
      原始页面

    全局导出图片样式

    在这里插入图片描述

    局部导出图片样式

    局部导出图片样式

    cytoscape.js Export方法 详情

    cy.png() 导出png

    • This function exports the currently-rendered graph as an image, so you may not call this function on a headless instance. By default, the export takes into account the current screen pixel density so that the image is of the same quality of the screen. If the maxWidth or maxHeight options are specified, then the screen pixel density is ignored so that the image can fit in the specified dimensions.
    • 此函数将当前呈现的图形导出为图像, 因此您不能在隐式实例(headless instance, 可能有些不合适, 简单说就是未指定container的实例)上调用此函数. 默认情况下, 导出会考虑当前屏幕的像素密度, 以便图像与屏幕的质量相同. 如果指定了maxWidthmaxHeight选项, 则忽略屏幕像素密度, 以便图像能够适应指定的尺寸.
    • Export the current graph view as a PNG image.
    • 以PNG格式导出当前展示的视图内容.

    构造方法

    • 构造方法 cy.png( options )

    参数详解

    • The export options.
    • 导出参数.

    options参数详解

    • options The export options.
      • output Whether the output should be 'base64uri' (default), 'base64', 'blob', or 'blob-promise' (a promise that resolves to the blob is returned).
      • bg The background colour of the image (transparent by default).
      • full Whether to export the current viewport view (false, default) or the entire graph (true).
      • scale This value specifies a positive number that scales the size of the resultant image.
      • maxWidth Specifies the scale automatically in combination with maxHeight such that the resultant image is no wider than maxWidth.
      • maxHeight Specifies the scale automatically in combination with maxWidth such that the resultant image is no taller than maxHeight.

    options参数详解(翻译)

    • options The export options.
      • output 输出方式, 可选选项有: 'base64uri' (默认选项), 'base64', 'blob', or 'blob-promise' (返回一个返回blob内容的promise对象).
      • bg 背景颜色 (默认transparent).
      • full 导出当前可视视图内容 (false, 默认项) 或完整视图内容 (true).
      • scale 一个正数, 用于指定结果图片大小的缩放比例.
      • maxWidthmaxHeight 一起使用自动指定比例, 使合成的结果图片宽度不超过 maxWidth.
      • maxHeightmaxWidth 一起使用自动指定比例, 使合成的结果图片高度不超过 maxHeight.

    注意事项

    • Specifying output:'blob-promise' is the only way to make this function non-blocking. Other outputs may hang the browser until finished, especially for a large image.
    • 指定输出方式:'blob-promise'是使这个函数不阻塞的唯一方法. 其他输出方式可能会挂起浏览器, 直到完成, 特别是对于大图像.

    cy.jpg() 导出jpg(jpeg)

    • This function exports the currently-rendered graph as an image, so you may not call this function on a headless instance. By default, the export takes into account the current screen pixel density so that the image is of the same quality of the screen. If the maxWidth or maxHeight options are specified, then the screen pixel density is ignored so that the image can fit in the specified dimensions.
    • 此函数将当前呈现的图形导出为图像, 因此您不能在隐式实例(headless instance, 可能有些不合适, 简单说就是未指定container的实例)上调用此函数. 默认情况下, 导出会考虑当前屏幕的像素密度, 以便图像与屏幕的质量相同. 如果指定了maxWidthmaxHeight选项, 则忽略屏幕像素密度, 以便图像能够适应指定的尺寸.
    • Export the current graph view as a JPG image.
    • 以JPG格式导出当前展示的视图内容.

    别名

    • cy.jpeg()

    构造方法

    • 构造方法 cy.jpg( options )

    参数详解

    • The export options.
    • 导出参数.

    options参数详解

    • options The export options.
      • output Whether the output should be 'base64uri' (default), 'base64', 'blob', or 'blob-promise' (a promise that resolves to the blob is returned).
      • bg The background colour of the image (white by default).
      • full Whether to export the current viewport view (false, default) or the entire graph (true).
      • scale This value specifies a positive number that scales the size of the resultant image.
      • maxWidth Specifies the scale automatically in combination with maxHeight such that the resultant image is no wider than maxWidth.
      • maxHeight Specifies the scale automatically in combination with maxWidth such that the resultant image is no taller than maxHeight.
      • quality Specifies the quality of the image from 0 (low quality, low filesize) to 1 (high quality, high filesize). If not set, the browser’s default quality value is used.

    options参数详解(翻译)

    • options The export options.
      • output 输出方式, 可选选项有: 'base64uri' (默认选项), 'base64', 'blob', or 'blob-promise' (返回一个返回blob内容的promise对象).
      • bg 背景颜色 (默认white).
      • full 导出当前可视视图内容 (false, 默认项) 或完整视图内容 (true).
      • scale 一个正数, 用于指定结果图片大小的缩放比例.
      • maxWidthmaxHeight 一起使用自动指定比例, 使合成的结果图片宽度不超过 maxWidth.
      • maxHeightmaxWidth 一起使用自动指定比例, 使合成的结果图片高度不超过 maxHeight.
      • quality 指定映像的质量从0(低质量, 低文件大小)到1(高质量, 高文件大小). 如果没有设置, 则使用浏览器的默认质量值.

    注意事项

    • Specifying output:'blob-promise' is the only way to make this function non-blocking. Other outputs may hang the browser until finished, especially for a large image.
    • 指定输出方式:'blob-promise'是使这个函数不阻塞的唯一方法. 其他输出方式可能会挂起浏览器, 直到完成, 特别是对于大图像.
    • The JPEG format is lossy, whereas PNG is not. This means that cy.jpg() is useful for cases where filesize is more important than pixel-perfect images. JPEG compression will make your images (especially edge lines) blurry and distorted.
    • JPEG格式是有损的, 而PNG不是. 这意味着在文件大小比像素完美的图像更重要的情况下, cy.jpg() 非常有用. JPEG压缩将致使您的图像变得(特别是边缘线)模糊和扭曲.

    导出全局png图片

    /**
    * 导出全局图片.
    */
    exportPng() {
      let blob = this.$cy.png({output: 'blob', bg: 'transparent', 
        full: true, scale: 4, quality: 1});
      let aLink = document.createElement('a');
      let evt = document.createEvent("HTMLEvents");
      evt.initEvent("click", true, true);
      aLink.download = `${new Date().getTime()}.png`;
      aLink.href = URL.createObjectURL(blob);
      aLink.dispatchEvent(evt);
      aLink.click();
    },
    

    导出全局带有水印的png图片

    /**
     * 绘制水印.
     */
    drawWatermark({
                    canvas = null,
                    words = `机密信息, 请勿外传! 时间: ${new Date().toTimeString()}`,
                    width = 200,
                    height = 200,
                    font = "15px microsoft yahei", //水印字体设置
                    fillStyle = "rgba(0, 0, 0, 0.3)", //水印字体颜色设置
                    rotate = 10 * Math.PI / 180, //水印字体倾斜角度设置, 正数顺时针, 负数逆时针
                    positionX = 20, // X 轴偏移像素
                    positionY = 20, // Y 轴偏移像素
                  } = {}) {
      let tempCanvas = document.createElement('canvas');
      [tempCanvas.width, tempCanvas.height] = [width, height];
      let tempCtx = tempCanvas.getContext("2d");
      /** 清除画布 */
      tempCtx.clearRect(0, 0, tempCanvas.width, tempCanvas.height);
      /** 文字倾斜角度 */
      tempCtx.rotate(rotate);
      /** 字体样式及颜色 */
      [tempCtx.font, tempCtx.fillStyle] = [font, fillStyle];
    
      let [wordsArr, index, s] = [[], 0, ''];
      for (let code of words) {
        s += code;
        code.codePointAt(0) > 255 ? index += 2 : index += 1;
        (index > tempCanvas.width / 11.25) && (wordsArr.push(s)) && ([index, s] = [0, '']);
      }
      wordsArr.push(s);
    
      for (let i = 0; i < wordsArr.length; i++) {
        tempCtx.fillText(wordsArr[i], positionX, positionY + i * 20, tempCanvas.width - positionX);
      }
    
      let ctx = canvas.getContext("2d");
      ctx.fillStyle = ctx.createPattern(tempCanvas, "repeat");
      ctx.fillRect(0, 0, canvas.width, canvas.height);
    },
    /**
     * 导出全局图片带有水印.
     */
    exportPngAndWatermark() {
      let time = new Date().getTime();
      let blob = this.$cy.png({output: 'blob', bg: 'transparent', full: true, scale: 4, quality: 1});
    
      let image = new Image();
      [image.id, image.crossOrigin, image.src] = [time, 'anonymous', window.URL.createObjectURL(blob)];
      image.onload = () => {
        let canvas = document.createElement('canvas');
        [canvas.width, canvas.height] = [image.width, image.height];
        let ctx = canvas.getContext('2d');
        /** 绘制水印 */
        this.drawWatermark({canvas: canvas, words: `机密信息, 请勿外传! 时间: ${new Date().toTimeString()}`});
        /** 绘制原图 */
        ctx.drawImage(image, 0, 0, image.width, image.height, 0, 0, image.width, image.height);
        ctx.save();
        let [aLink, evt] = [document.createElement('a'), document.createEvent("HTMLEvents")];
        evt.initEvent("click", true, true);
        [aLink.download, aLink.href] = [`${time}.png`, canvas.toDataURL("image/png")];
        aLink.dispatchEvent(evt);
        aLink.click();
      }
    },
    

    导出部分png图片(参数控制是否包含水印)

    • 依赖于上述全局导出方法
    /**
     * 导出局部图片.
     */
    exportCutPng({watermark = false} = {}) {
      let unselectedVertexes = this.$cy.elements('node:unselected')
      if (!unselectedVertexes || 0 == unselectedVertexes.length) {
        return false;
      }
      let remove = unselectedVertexes.remove(); // 保留删除内容
      watermark ? this.exportPngAndWatermark() : this.exportPng();
      (remove && remove.length) && (remove.restore()); // 恢复删除内容
    },
    

    本文到此结束, 请指教.

    展开全文
  • 前段时间,为了解析PDF,花了不少时间去学习PDFbox和itext,这两个都是处理PDF的开源库,java和C#的。作为一个刚开始学习这两个开源库的,感觉百度上的资源还是太少了。我做的是一个关于PDF的处理,在百度上找了...
  • AS3 图片水印

    2011-06-17 10:10:01
    AS3 图片水印 先看代码 后面附上解析!! var addSp:Sprite=new Sprite();//结合图片水印的容器 ...var txt:TextField=new TextField();...//在库中链接导出为:kuImage的图片 var format:TextFor...
  • 今天给大家介绍一款好用的文档写作工具——Typora[1],它是一款跨平台的 Markdown...Microsoft Word 目前没有将文档导出图片的功能,而 WPS 虽然这个功能,但需要开通会员,才能导出不包含水印图片了 Typo...
  • 1、生成PDF文件 2、支持中文字体 3、PDF文件内容为表格,表格表头 ...10、PDF文件增加文字或图片水印功能,要求文字或图片在整个页面清晰可见。增加的水印信息不能使PDF文件大小增长超过5%。 11、对PDF文件进行加密
  • 去除Visual Paradigm输出图片中的浮水印

    万次阅读 热门讨论 2012-05-17 01:08:00
    唯一的缺憾就是输出图片有水印,虽说咱们也四处宣传VP,但输出的图片实在不方便。VP 9已经将浮水印贴满整个背景,影响导出图片的可读性。   不过,SVG导出功能还在!(这是我唯一还在坚持VP的理由!) 我写了一段...
  • 但是手机上的视频很多都带有水印,水印的存在,严重影响了整体的美感和氛围。今天就手把手教大家,手机视频如何去水印,方法非常简单,一起来看看吧。1.说明目前也有解析无水印视频地址,但必须要有原视频链接才行,...
  • 文/彭宏豪今天给大家介绍一款好用的文档写作工具——Typora,它是一款跨平台...Microsoft Word 目前没有将文档导出图片的功能,而 WPS 虽然这个功能,但需要开通会员,才能导出不包含水印图片了 Typora,...
  • 最近公司要求后端实现PDF导出功能,并且还要要求能够加盖水印。网上搜寻了一下,大多帖子比较老旧,并且随着开发包的版本更新,都不能用,所以了这篇博客。 生成PDF所用到的jar包主要是itext,现在这个包在中央...
  • 通过SQL及JDBC模式导出各类业务数据,以PDF文件格式存放,要求该文件只能查看和打印(不能编辑和篡改),文件要公司相关标志和水印功能。 【需求分析】 1、 通过SQL及JDBC模式导出业务数据,业务数据以表格...
  • 上周零零碎碎花了一周的时间研究水印的开发,现在终于写了个入门级的Demo,做下笔记同时分享出来供大家参考。 Demo是在我上次写的 JAVA实用案例之文件导入导出(POI方式) 框架基础上搭建的,基于Spring+SpringMVC...
  • 最近接到一个所谓给导出文件加水印的需求,但是一番搜索百度之后意识到一个现实:excel没有水印的概念,强行要加水印的话只能是给文件加图片,但是加图片有两种: 往表格里贴透明图片,这个很智障,会严重干扰正常...
  • POI 导出excel

    2010-08-17 09:59:00
    Excel导出添加的水印不同于图片生成时添加水印,百度了一下Excel文件的水印添加的方法,为程序导出时添加水印寻找思路。 Excel中水印效果实现探讨一文对水印的添加描述比较详细...
  • 破解Foxit PDF SDK(DLL) 3.1, PDF转换到图片, 去除水印

    万次阅读 热门讨论 2011-11-27 23:33:17
    将PDF转换到图片, 使用Foxit PDFFoxit PDF SDK(DLL) 3.1最新版本发布了, 使用它的免费版本Render PDF页面到图像的话,会一个水印。摸了几个小时,终于将这个水印Crack掉了。它采用这样一种保护方法:关键方法实现...
  • 最近在做一个东西的时候,需要把一张或者多张图片合成为一个视频文件,并加入到视频轨道中进行播放或者导出,而不单单是把图片当做水印加到现有的视频上,做的时候首先考虑到的当然是AVAssetWriter,但是在做的时候...
  • java poi excel水印

    2020-01-30 14:41:13
    提供一种可行办法就是预留一份现成的带有水印的excel模板,以模板创建workbook,再向其添加内容,这样即可实现导出有水印的excel,需要注意的是poi版本不能太老,太老的不支持此操作。 代码试例如下: @Web...
  • 文章目录文章前言技术使用搭建演示...最近工作中个需求是获取上传的图片的位置信息,并添加位置和时间水印。因为之前也没做过,所以找了很多网上的各种文章,杂七杂八的都,比较乱,国庆假期正好时间,写了这篇
  • PS批量处理水印

    2020-05-27 14:41:49
    把你的水印准备好功能快捷键合理的创建标题,助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表...
  • 还有很多人说让导出PPT,然后删除的,也说用wps去除pdf水印的,结果可想而知: ppt等能够轻而易举删除水印元素的,都变成会员才可以导出 pdf的水印,wps识别不了,应该是一个整体 解决办法 在流程图编辑页...
  • 文章目录验证码的制作流程1.创建画布资源2.操作画布3.导出 &amp;amp;amp;amp;&amp;... 销毁4....创建新的画布:imagecreate(宽,高):创建基于调色板的画布,支持颜色少 ...基于已图像创建画布 i...
  • 您不仅可以通过这些编辑器编辑和添加文本,还可以修改图片、添加图形、签名、填写表格等。重要的是,可以免费使用。这里要说的是,并非所有这些免费的PDF编辑器都支持相同的功能,因此,您可以同时使用多个编辑器...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 144
精华内容 57
关键字:

导出图片有水印