怎样在截屏得到的图片上做标记?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样在截屏得到的图片上做标记?相关的知识,希望对你有一定的参考价值。

1,首先用QQ截图快捷键"ctrl+Alt+k"。每个人的快捷键可能不一样,一般默认状态下是"ctrl+Alt+A"。用快捷键选中要截取的区域。
2,在截图边区域看到下图重点标出的工具栏,这个工具栏,会在截取需要的区域后出现,不固定出现在那个位置,但是一定是有的。
3,工具栏中有哪些功能。第一第二个图标是框出重点。点击会出现让选择颜色和粗细,。
4,第三图标是箭头标志。看自己需要指向哪里。
5,第四,第五个图标是涂鸦和马赛克的作用。
6,第六,第七图标是文字和操作退一步。点击“A”图标,然后在你需要编写文字的区域像截图一样,框一下就好了。
7,第八是保存到本地,第九是保存到手机,第十是分享到社交,第十一是收藏到QQ。
8,,最后,一个是取消截图,一个是确定截图。
参考技术A 1、用美图秀秀软件,在上面添加图片、文字等
2、用PS软件在图片上加标记
美图秀秀软件电脑可以用,手机也可以用。可以添加标记,删除标记,美图等功能
PS是很多人的美工用的软件,此软件方便快捷,可以对图片进行各种修改,功能比较全面。
参考技术B 截屏的框拉出来以后 ,框子下面有按钮,直接用你需要的就可以了

如何在截屏前删除某些元素?

【中文标题】如何在截屏前删除某些元素?【英文标题】:How to remove certain elements before taking screenshot? 【发布时间】:2014-01-02 14:45:38 【问题描述】:

我可以使用下面的示例代码截取页面截图:

html2canvas(document.body, 
  onrendered: function(canvas) 
    document.body.appendChild(canvas);
  
);

当我截取屏幕截图时,我不想成为页面的一部分? 我怎样才能防止它们成为屏幕截图的一部分。

我认为的一种方法是克隆元素然后删除元素,但是对克隆进行截图会出现白屏。这是我使用的代码:

html2canvas($(document.body).clone()[0], 
  onrendered: function(canvas) 
    document.body.appendChild(canvas);
  
);

【问题讨论】:

【参考方案1】:

您可以为 <Printable/><NonPrintable/> 创建 HOC ,您可以使用 <NonPrintable><YourCoolComponent/></NonPrintable> 包装您的组件 这些子组件将被排除在外。


import React from "react"

interface INonPrintable 
  children: React.ReactChildren


/*
HOC - Printable which injects the printId to the React component
which gets us Printable Context to html2canvas => jsPDF
eg:
 <Printable printId="about-you-print">
    <PersonalInfo badEmail=badEmail />
    <IdentityInfo />
    <AdditonalInfo />
    <AddressInfo
     serviceAddress=serviceAddress
     billingAddress=this.state.billingAddress
     setBillingAddress=this.setBillingAddress
    />
</Printable>

*/
export default function Printable( printId = "", children, ...restProps  ) 
  return <div print-id=printId ...restProps>children</div>



/*
HOC - NONPrintable which injects the data-html2canvas-ignore to the React component
which gets us Printable Context to html2canvas => jsPDF
eg:
<NonPrintable style=display:"flex",justifyContent:'space-around'>
  <Button
    text="Print PDF using Own utility"
    onClick=this.handlePrintPdf
    />
    <Button
    text="Print PDF using html2canvas + jsPDF"
    onClick=this.handlePrintwithPDFjs
    />
</NonPrintable>
*/

export const NonPrintable = ( children, ...restProps ) => 
  return <div data-html2canvas-ignore ...restProps>children</div>


【讨论】:

【参考方案2】:

如果您不想使用属性,html2canvas 确实提供了删除元素的方法。例如:

html2canvas( document.body, 
    ignoreElements: function( element ) 
        
        /* Remove element with id="MyElementIdHere" */
        if( 'MyElementIdHere' == element.id ) 
            return true;
        
        
        /* Remove all elements with class="MyClassNameHere" */
        if( element.classList.contains( 'MyClassNameHere' ) ) 
            return true;
        
        
    
 ).then( function( canvas ) 
    document.body.appendChild( canvas );
 );

有关详细信息,请参阅html2canvas options。

【讨论】:

【参考方案3】:

当我使用这个库时,我遇到了一个问题,即该库会下载我的应用程序中的所有图像,这会导致应用程序运行缓慢。我使用 ignoreElements 选项解决了这个问题。 这是我的代码:

  var DropAreaElement= document.getElementById("123");
    var config= 
        useCORS: true,
        ignoreElements: function (element) 
            if (element.contains(DropAreaElement) || element.parentElement.nodeName =="HTML" || element == DropAreaElement || element.parentNode == DropAreaElement) 
                console.log("elements that should be taken: ", element)
                return false;
            else 
                return true;
            
        
    ;
    html2canvas(DropAreaElement, config).then(function (canvas)
        var imgBase64 = canvas.toDataURL('image/jpeg', 0.1);
        console.log("imgBase64:", imgBase64);
        var imgURL = "data:image/" + imgBase64;
        var triggerDownload = $("<a>").attr("href", imgURL).attr("download", "layout_" + new Date().getTime() + ".jpeg").appendTo("body");
            triggerDownload[0].click();
            triggerDownload.remove();
    ).catch(Delegate.create(this, function (e)
        console.error("getLayoutImageBase64 Exception:", e);
    );

【讨论】:

【参考方案4】:

将此属性:data-html2canvas-ignore 添加到处理屏幕截图时您不想被截取的任何元素。

希望这将有助于下一个人。

【讨论】:

或者您可以在调用 html2canvas 函数之前使用 jquer/javascript 隐藏这些 div,然后在该函数之间显示。 paa g 是否适用于带有滚动的页面?我正在尝试这样做,因为我有 div 它将被转换为包含滚动的画布,但它只转换那些在屏幕上可见的元素,换句话说,它正在拍摄屏幕截图....有没有办法采取整页截图??? 我正在获取整个页面,而不仅仅是可见区域。 也帮助下一个人:“向元素添加属性”具体指&lt;div data-html2canvas-ignore="true"&gt; Hidden in pdf &lt;/div&gt; data-html2canvas-ignore="true"

以上是关于怎样在截屏得到的图片上做标记?的主要内容,如果未能解决你的问题,请参考以下文章

基于OpenCV C++写了一个截屏程序,但是当视频总帧数为截屏间隔整数倍时候 死循环

屏幕截图

如何在截屏前删除某些元素?

怎么用Selenium webdriver进行截图操作

iPad 有啥方法快速在当前屏幕上做标记 画线吗? 我是要把当前屏幕上的内容要做标记截图发送给别

Android 模拟器在截屏时一直退出