精华内容
下载资源
问答
  • 现在希望能够直接复制粘贴图片,说做就做,一下是我从网上找到的例子 其中样式 note-editable 是summernote自动生成出来 //summernote //监听粘贴图片 document.getElementsByClassName('note-editable')[0]....

    转载:http://www.5180it.com/bbs/admin/1/98.html

     

    在使用summernote过程中,经常会上传图片,但如果我们每次都点击上传图片,使用起来不是特别方便。


    现在希望能够直接复制粘贴图片,说做就做,一下是我从网上找到的例子

     

    其中样式 note-editable 是summernote自动生成出来

    //summernote

    //监听粘贴图片

    document.getElementsByClassName('note-editable')[0].addEventListener('paste',function(e){

        if ( !(e.clipboardData && e.clipboardData.items) ) {

            return;

        }

        for (var i = 0, len = e.clipboardData.items.length; i < len; i++) {

            var item = e.clipboardData.items[i];

     

            if (item.kind === "string") {

                item.getAsString(function (str) {

                    console.log(str);

                })

            } else if (item.kind === "file") {

                var f= item.getAsFile();

    parseFile(f, 800,function(base64){

    $.post("/manager/uploadImg",{"imgStr":base64},function(data){

    $('#summernote').summernote('editor.insertImage', data.msg);

              });

    })

                console.log(f);

            }

        }

    });

     这里说明一下这个parseFile方法,就是将图片转化为base64编码,并压缩base64编码,然后上传到服务器。

    代码我也贴出来吧:

     

     这里说明一下这个parseFile方法,就是将图片转化为base64编码,并压缩base64编码,然后上传到服务器。

    代码我也贴出来吧:

    //压缩方法

    function parseFile(file, w,callBack) {

     var reader = new FileReader();

     reader.readAsDataURL(file);

     reader.onload = function(e){

      var newImage = new Image();

      var quality = 0.7; //压缩系数0-1之间

      newImage.src = reader.result;

      console.log("原来长度",reader.result.length)

      newImage.setAttribute("crossOrigin", 'Anonymous'); //url为外域时需要

      var imgWidth, imgHeight;

      newImage.onload = function () {

       imgWidth = this.width;

       imgHeight = this.height;

       var canvas = document.createElement("canvas");

       var ctx = canvas.getContext("2d");

       if (Math.max(imgWidth, imgHeight) > w) {

        if (imgWidth > imgHeight) {

         canvas.width = w;

         canvas.height = w * imgHeight / imgWidth;

        } else {

         canvas.height = w;

         canvas.width = w * imgWidth / imgHeight;

        }

       } else {

        canvas.width = imgWidth;

        canvas.height = imgHeight;

        quality = 0.7;

       }

       ctx.clearRect(0, 0, canvas.width, canvas.height);

       ctx.drawImage(this, 0, 0, canvas.width, canvas.height);

       var base64 = canvas.toDataURL("image/jpeg", quality); //压缩语句

       // 如想确保图片压缩到自己想要的尺寸,如要求在50-150kb之间,请加以下语句,quality初始值根据情况自定

       while (base64.length / 1024 > 100) {

         quality -= 0.01;

         base64 = canvas.toDataURL("image/jpeg", quality);

       }

       // 防止最后一次压缩低于最低尺寸,只要quality递减合理,无需考虑

       // while (base64.length / 1024 < 50) {

       // quality += 0.001;

       // base64 = canvas.toDataURL("image/jpeg", quality);

       // }

       console.log("压缩后长度",base64.length)

       callBack(base64)

      }

     }

    }

    该例子没有将Base64转为file的例子,我也找了个例子出来

    import java.io.ByteArrayInputStream;

    import java.io.File;

    import java.io.FileOutputStream;

    import java.io.IOException;

    import java.io.InputStream;

    import org.springframework.web.multipart.MultipartFile;

     

    public class BASE64DecodedMultipartFile implements MultipartFile {

     

     private final byte[] imgContent;

     private final String header;

     

     public BASE64DecodedMultipartFile(byte[] imgContent, String header) {

      this.imgContent = imgContent;

      this.header = header.split(";")[0];

     }

     

     @Override

     public String getName() {

      return System.currentTimeMillis() + Math.random() + "." + header.split("/")[1];

     }

     

     @Override

     public String getOriginalFilename() {

      return System.currentTimeMillis() + (int) Math.random() * 10000 + "." + header.split("/")[1];

     }

     

     @Override

     public String getContentType() {

      return header.split(":")[1];

     }

     

     @Override

     public boolean isEmpty() {

      return imgContent == null || imgContent.length == 0;

     }

     

     @Override

     public long getSize() {

      return imgContent.length;

     }

     

     @Override

     public byte[] getBytes() throws IOException {

      return imgContent;

     }

     

     @Override

     public InputStream getInputStream() throws IOException {

      return new ByteArrayInputStream(imgContent);

     }

     

     @Override

     public void transferTo(File file) throws IOException, IllegalStateException {

      new FileOutputStream(file).write(imgContent);

     }

    }

     

    import org.springframework.web.multipart.MultipartFile;

    import sun.misc.BASE64Decoder;

     

    public class Base64StrToImage {

     

     public static MultipartFile base64MutipartFile(String imgStr) {

      try {

       String[] baseStr = imgStr.split(",");

       BASE64Decoder base64Decoder = new BASE64Decoder();

       byte[] b = new byte[0];

       b = base64Decoder.decodeBuffer(baseStr[1]);

       for (int i = 0; i < b.length; ++i) {

        if (b[i] < 0) {

         b[i] += 256;

        }

       }

       return new BASE64DecodedMultipartFile(b, baseStr[0]);

      } catch (Exception e) {

       e.printStackTrace();

       return null;

      }

     }

    }

     

    通过下面的方法,我们就可以转为我们平时上传使用的MultipartFile了

             BASE64DecodedMultipartFile base64DecodedMultipartFile = null;

                if(StringUtils.isNotEmpty(imgStr)){

                   base64DecodedMultipartFile = (BASE64DecodedMultipartFile) Base64StrToImage.base64MutipartFile(imgStr);

                }


    在使用的过程中,我发现粘贴是可以的,但粘贴出来的图片会有两个,一个是原base64的图片,另外一个是上传到服务器返回地址的图片

     

    这是就想可能的没有覆盖到原来的方法,导致重复了,以下是我修改后的例子

    $(".summernote").summernote({

                height: '450px',

                //设置Dialog淡入淡出效果

                dialogsFade: true,

                fontNames: ['宋体', '微软雅黑', '楷体', '黑体', '隶书', 'Arial', 'Arial Black', 'Comic Sans MS', 'Courier New',

                    'Helvetica Neue', 'Helvetica', 'Impact', 'Lucida Grande',

                    'Tahoma', 'Times New Roman', 'Verdana'],

                lang: 'zh-CN',

                toolbar: [

                    ['style', ['style']],

                    ['font', ['bold']],

                    ['color', ['color']],

                    ['insert', ['myphoto']],

                    ['view', ['fullscreen']]

                ],

                buttons: {

                    myphoto: selectImageButton //自已定义的按钮函数

                },

                callbacks: {

                 //onPaste粘贴需要重写,否则粘贴图片时出现重复的图片

                 onImageUpload:function(e){

                  //console.info("onImageUpload>>>>>>>>");

                 },

                    onPaste: function (ne) {

                         //ne.preventDefault ? ne.preventDefault() : (ne.returnValue = false);

                         var returnFlag = true;

                         var t_clipboardData;

                         if(typeof ne.clipboardData !='undefined'){

                          returnFlag = false;

                          t_clipboardData = ne.clipboardData;

                         }

                         if(typeof ne.originalEvent.clipboardData !='undefined'){

                          returnFlag = false;

                          t_clipboardData = ne.originalEvent.clipboardData;

                         }

                         if(typeof window.clipboardData !='undefined'){

                          returnFlag = false;

                          t_clipboardData = ne.originalEvent.clipboardData;

                         }

                         if(returnFlag){

                          return;

                         }

                         if(t_clipboardData==null||typeof t_clipboardData =='undefined'){

                          return;

                         }

                       for (var i = 0, len = t_clipboardData.items.length; i < len; i++) {

                           var item = t_clipboardData.items[i];

                           if (item.kind === "file") {

                               var f= item.getAsFile();

                               parseBase64File(f, 800,function(base64){

                           var formData = new FormData();

                            formData.append("imgStr", base64);

                               $.ajax( {

                                   url : "/file/image/uploadImgStr",

                                data: formData,

                                   type: 'post',

                                   cache: false,contentType: false,processData: false,

                                   beforeSend: function () {

                                       $.modal.loading("上传中,请稍后...");

                                   },

                                   success : function(result) {

                                    $.modal.closeLoading();

                                       if (result.code == web_status.SUCCESS) {

                                        $('#summernote').summernote('editor.insertImage', result.path);

                                        $.modal.msgSuccess('上传成功')

                                       }else{

                                     $.modal.msgWarning(result.msg)

                                       }

                                   },

                                   error: function(data){

                                    $.modal.closeLoading();

                                       $.modal.alertError("上传失败,HTTP错误。");

                                   }

                               });

                      })

                           }

                       }

     

                    }

                }

            })

    转载:http://www.5180it.com/bbs/admin/1/98.html

    展开全文
  • 哦,对了QQ截图是不能自定义格式的,往往截的图带有几个字,QQ截图xxxxx.jpg,这个不少主机不支持中文,图片读取不出来,我们将上传的图片自动命名一下 根据时间来自动重命名 add_filter('wp_handle_upload_...

    可以直接复制截图图片的 这是非常好用的地方 具体的安装方法不过多介绍

    wordpress插件后台直接搜索Imagepaste

    用效果:截图后直接粘贴就粘贴到WordPress的文章编辑中来了,我是不是又懒了许多!

    哦,对了QQ截图是不能自定义格式的,往往截的图带有几个字,QQ截图xxxxx.jpg,这个不少主机不支持中文,图片读取不出来,我们将上传的图片自动命名一下

    根据时间来自动重命名

    add_filter('wp_handle_upload_prefilter', 'custom_upload_filter' );
    function custom_upload_filter( $file ){
    	$info = pathinfo($file['name']);
    	$ext = $info['extension'];
    	$filedate = date('YmdHis').rand(10,99);//为了避免时间重复,再加一段2位的随机数
    	$file['name'] = $filedate.'.'.$ext;
        return $file;
    }
    

    把上面那段代码加到你主题的functions.php中就可以了

    展开全文
  • 在上一篇文章中讲到如何将gif复制粘贴板,粘贴到QQ聊天窗口还能显示动画的动能,有些网友就有疑惑了(主要针对懂C++代码的人而言),这些数字到底什么意思呢?这里具体讲解一下这些数字是怎么计算出来的: ...

    上一篇文章中讲到如何将gif复制到粘贴板,粘贴到QQ聊天窗口还能显示动画的动能,有些网友就有疑惑了(主要针对不懂C++代码的人而言),这些数字到底什么意思呢?这里具体讲解一下这些数字是怎么计算出来的:

    例如:

    Version:0.9
    StartHTML:00000097
    EndHTML:00000209
    StartFragment:00000113
    EndFragment:00000173
    <html>
    <body>
    <!--StartFragment-->
    <img src="file:///D:/loading.gif" />
    <!--EndFragment-->
    </body>
    </html>

     

    下面显示的是每行文本的长度:

    Version:0.9				// 第1行长度:11+2(CR+LF)
    StartHTML:00000097			// 第2行长度:18+2(CR+LF)	97=前面5行数据长度总和,也就是html文本标签<html>之前的所有文本信息总长度
    EndHTML:00000209			// 第3行长度:16+2(CR+LF)	209=总共12行数据总长度之和
    StartFragment:00000113		        // 第4行长度:22+2(CR+LF)	113=前面7行数据长度总和,也就是html文本标签<!--StartFragment-->之前的所有文本信息总长度	
    EndFragment:00000173		        // 第5行长度:20+2(CR+LF)	173=前面9行数据长度总和,也就是html文本标签<!--EndFragment-->之前的所有文本信息总长度	
    <html>					// 第6行长度:6+2(CR+LF)
    <body>					// 第7行长度:6+2(CR+LF)
    <!--StartFragment-->		        // 第8行长度:20+2(CR+LF)	
    <img src="file:///D:/loading.gif" />	// 第9行长度:36+2(CR+LF)	
    <!--EndFragment-->			// 第10行长度:18+2(CR+LF)	
    </body>					// 第11行长度:7+2(CR+LF)
    </html>					// 第12行长度:7

    StartHTML:97=13+20+18+24+22

    StartFragment:113=97+8+8

    EndFragment:173=113+22+38

    EndHTML:209=173+20+9+7

    疑惑:

    Version:0.9 长度是11,为什么上面显示的是11+2=13呢?其实我们在编程写文本的时候,每行文件末尾就加了回车CR(\r)和换行LF(\n)符号,所以此处+2做了处理。

     

    Unix系统里,每行结尾是<换行>,即“\n”。

    Windows系统里,每行结尾是<回车>+<换行>,即“\r\n”。

    Mac系统里,每行结尾是<回车>,即“\r”。

    展开全文
  • 然后重新编辑和整理,但现在很多网站都限制相应的大篇幅复制,要么让你注册会员,要么让你买会员,各种限制让你不得适用snip来进行截图操作,不过有的时候截图的图片只可以进行参考,无法进行编辑,现在提出使用两...

    我们在日常生活中,有时需要把某些网页或者网站的内容给复制下来,然后重新编辑和整理,但现在很多网站都限制相应的大篇幅复制,要么让你注册会员,要么让你买会员,各种限制让你不得不适用snip来进行截图操作,不过有的时候截图的图片只可以进行参考,无法进行编辑,现在提出使用两种方法来进行复制

    方法一:

    打开相应的网页,复制文字受限,然后再相应的网页,一般右键或者其他操作,到可以出来print(打印)如:

    然后直接复制(copy):如下图copy的结果。

    一、什么叫网签? 1、网签是房地产买卖时,需要买卖双方做的一个网络签约售房手续。 例如:一手房买卖,销售公司销售员向你出售一套房,你认可满意,前期多数会被要求缴纳订金, 签署预购房协议,之后进行“网签”,也就是说房屋的信息都在当地房地局网络备案;买卖时,有 销售员会帮你输入一些网签的商品房买卖合同,然后打印出来,他们盖章,你签字,然后交钱什 么。 2、二手房也是有网签的,只不过是需要原房主带着房本跟你一同去房产交易所大厅通过房产交易所 大厅的工作人员帮你们双方办理,如果有中介公司,中介公司也会帮你们协同处理。

    该办法可以处理大多数网页,同时也可以将print 的网页打印保存为pdf 文件

    对于从pdf 文件的复制粘贴的基本操作,在此不详述

    方法二:选择去查看网页源代码

    如果可以直接查看源代码的文字复制,直接完成操作,但有些文档类网页甚至连源码也不会呈现其文字,怎么办?其实也有很多不同的网页插件,专门来实现相应的功能,见仁见智。

    网页不能复制文字咋回事?用这招轻松破除限制-太平洋电脑网 (pconline.com.cn)

    同时也推荐不怕麻烦的同学:

    Chrome 浏览器扩展神器暴力猴_sushengbuhuo的博客-CSDN博客

    https://www.tampermonkey.net/index.php?version=4.11&ext=dhdg&updated=true

     

    最新2020,12,07更新第三种方法:

    在网页复制的实践中,还有一种复制相应的需要的或者装载相应的内容,图片,然后去掉相应不需要的内容好方法,本文实践于CSDN的博客书写过程:

    1.找到相应喜欢的网页内容如:

    2.在相应的Google等浏览器,按F12,然后Element, 在Element下选择Copy,如图:

    3.在CSDN的博客书写中的Markdown编辑中复制

    如图所示,该编辑器分为左右两侧,在左侧1部分Copy 上一步骤的Element的Copy内容,2侧显示的内容如上2所示

    4.内容或图片复制

    在2侧的内容选择你需要的文字或者图片都可以实现Copy操作,2侧也有一些HTML的文本格式等内容的代码可忽略不计,该操作是使用的Markdown编辑器,

    其他的类似编辑器应该也可以实现该过程.

     

    授之于鱼不如授之渔!共同进步!

    当然尊重别人的知识产权,但同时也应该有一定的开源精神。

     

     

     

     

    展开全文
  • 最近使用ueditor富文本发现复制网上的文章插入,图片地址能替换成自己服务器,只能下载来再粘贴上传,感觉太麻烦,所以写下此文章。利用springboot+阿里云OSS 替换例如百度上的图片的地址换成自己的服务器地址 ...
  • mac系统文本复制粘贴问题

    千次阅读 2017-05-27 11:14:37
    首先是windows和mac 通用的地方,那就是有一些网站并能直接复制文本内容,其中的某些图片类信息在复制之后是没有办法展现出来的, 这种问题要解决起来就很简单了,先把照片保存在本地电脑,然后在
  • 文库中的收费的文档可以...2. 如果文档页数太多,保存为图片不方便查看做笔记,可以网页另存为本地版本之后,打开本地的HTML文件,复制全部,粘贴出来。再把广告类信息进行筛去,替换多余的空格、空行、空段落。 ...
  • word图片转存,是指UEditor为了解决用户从word中复制了一篇图文混排的文章粘贴到编辑器之后,word文章中的图片数据无法显示在编辑器中,也无法提交到服务器上的问题而开发的一个操作简便的图片转存方案。 <b>...
  • 想要通过python实现对win10操作复制功能,目前可以复制图片和文本,但是打印出来的时候只有一个内容,要么是图片要么是文本(QQ上粘贴是图片,其他渠道粘贴是文本)。能同时粘贴出来 ``` import win32...
  • Loxclip液切是一个轻快简单的图片剪贴板增强工具,它能将从网页上右键复制的图片粘贴为文件,并且支持间断复制粘贴,欢迎下载使用 特性: 1、复制图片粘贴为文件 Windows复制到剪贴板的图片(例如网页中、画板中、...
  • 今天为大家带来一款我自己写的小应用,由于最近在学习网课,而个人又是OneNote笔记爱好者,做笔记就觉得课程学习完整,...当我们使用QQ、Tim、微信或者电脑自身的截图功能获取了截图后,需要将图片保存成文...
  • 为什么博客里的图片都显示不出来

    千次阅读 热门讨论 2016-08-31 09:31:36
    费了好大劲才写好的文章,过几天突然发现图片显示不出来了!不能直接用word进行复制粘贴,只能一张图片一张图片的添加么?然后好不容易把图片加载上去,结果过段时间又不显示了!作为一个专业的技术交流平台,文章...
  • 很多时候我们用一些管理系统的时候,发布新闻、公告等文字类信息时,希望能很快的将word里面的内容直接粘贴到富文本编辑器里面,然后发布出来。减少排版复杂的工作量。 下面是借用百度doc 来快速实现这个word 粘贴...
  • 在github上查看RT-Thread STM32系列BSP制作教程时发现教程中所有的图片都加载不出来,非常影响教程的阅读使用。 使用记事本打开文件: C:\Windows\System32\drivers\etc\hosts 将如下内容复制粘贴到hosts...
  • 如何将PDF文档中的图片提取出来? PDF是我们经常接触的一种文档,但对于它的一些编辑操作却并...首先用极速PDF阅读器打开文档,然后在图片处单击鼠标右键并选择“复制图片”,这时就可以粘贴发送了。 当然如果需...
  • 佳能相机RAW文件使用软件DPPViewer,通过该软件打开RAW格式图片进行处理。  一:右击图片,选中从文件读取并粘张配方。...将配方复制到剪切板然后选中同一个场景,再粘贴配方可以调整同一个场景的白平衡
  • 比如我们用极速PDF阅读器打开文件后,在图片任意处右击并选择“复制图片”; 接着我们可以直接在Word文档或者聊天工具对话框中粘贴,双击就能单独打开这张图片,重新保存一下就可以啦。 以上方法需要再次保存,如果...
  • 图片网上有很多的教程教你怎么把图片旋转,移动,缩放,等等,却没有教你保存状态,而且网上的教程都乱七八糟,都是复制粘贴,都不是自己想要的,所以有时间自己写一个,现在把实现步骤,代码,源码贴出来,共同学习...
  • Word之图片不显示或显示全怎么办?

    千次阅读 2016-08-28 15:27:03
    我们日常工作使用word的时候,偶尔会突然发现一个奇怪的问题,就是把...问题一1、只显示一半截 复制图片粘贴到word之后,发现总是只显示一点点,显示全,就这么一半截,点到图片上面,其它的部分是框框,急死了,
  • 刚开始收拾博客,想把以前做的一些实验报告添加到博客中,但是由于word文档的中的图片太多了,图片在论坛有能直接复制粘贴,所以上网小搜索了一下    找到了最多的方法就是讲word文档另存为htm文件,然后word...
  • 将数据单元格换成图片并导出来,这在编辑表格时经常回遇到,在截图,直接换成图片的情况下如何处理呢?看似很难实现的问题,在本文只需几步便可搞定,本例是通过“选择性粘贴”来实现的,如果你有更好的方法可以...
  • 这些天发现github上面的图片都无法显示了,在网上查了一下,解决方法如下: 1.在无法显示的图像上右键->检查; 2.查看它的URL,也就是src属性。把https://后面那段复制出来; 3.打开IPAddress.com,在搜索框粘贴...
  • 标签,这个就多说了,image作为背景,用绝对定位分隔图层出来就可以实现,可行但是我初衷还是想要用background的形式引入背景图片。 将图片转为base64,我用的是这个方法,网上有免费的在线转换器,比如:...
  • 一些编辑器最后生成的公式都是图片的样式,我们复制粘贴不出来具体的样式。我们需要用这个插件来转化图片公式
  • 在使用微信小程序开发者工具中,复制粘贴文档的代码没有任何显示,出现的问题就是没有将swiper的wxss样式设置 此刻的swiper{ width:100%; } 这样就显示出来了~~~ 初学 加油吧!!! ...
  • typora上传图片

    2021-04-21 16:57:49
    之前一直在使用typora上传本地的图片,这有一个很不好的体验,就是图片的位置发生移动时或上传博客的时候,图片就加载不出来,一张张图片复制粘贴太麻烦,所以在想typora上的图片是否可以上传到线上,这样在分享迁移...
  • 在我们使用excel过程中,有时需要将我们的excel表转换成图片,这...然后将图片粘贴到excel的空白处 这样粘贴好后已经将内容转换成了图片,如果我们需要保存出来,就右键这个图片,复制,将其粘贴到聊天对话框或者画图中
  • 搞笑的是文章千篇一律,各种复制粘贴,注释都改的,也不看代码好不好用,结果当然好用,分解出来图片出现变色、透明背景不透明等问题,想了想还是自己写一篇吧,代码量少的可怜,纯粹是看惯那些无脑复制。...
  • 自己写的一个在RichEdit中显示图片的Atl控件,图片解析、描画用GDI+实现,所以...现在复制粘贴有问题:可以复制,但是粘贴不回来,不知道错在哪了,传上来求教。有可以解决此问题的麻烦告诉我一下修正方案,不胜感激!

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 187
精华内容 74
关键字:

复制图片粘贴不出来