前言在上一篇理论文章中我们介绍了YUV到RGB之间转换的几种公式与一些优化算法,今天我们再来介绍一下RGB到YUV的转换,顺便使用OpenglES做个实践,将一张RGB的图片通过Shader的方式转换YUV格式图,然后保存到本地。可能有的童鞋会问,YUV转RGB是为了渲染显示,那么RGB转YUV的应用场景是什么?在做视频编码的时候我们可以使用MediaCodec搭配Surface就可以完成,貌似也没有用到RGB转YUV的功能啊,硬编码没有用到,那么软编码呢?一般我们做视频编码的时候都是硬编码优先,软编码兜底的原则,在遇到一些硬编码不可用的情况下可能就需要用到x264库进行软编码了,而此时RGB
前言在上一篇理论文章中我们介绍了YUV到RGB之间转换的几种公式与一些优化算法,今天我们再来介绍一下RGB到YUV的转换,顺便使用OpenglES做个实践,将一张RGB的图片通过Shader的方式转换YUV格式图,然后保存到本地。可能有的童鞋会问,YUV转RGB是为了渲染显示,那么RGB转YUV的应用场景是什么?在做视频编码的时候我们可以使用MediaCodec搭配Surface就可以完成,貌似也没有用到RGB转YUV的功能啊,硬编码没有用到,那么软编码呢?一般我们做视频编码的时候都是硬编码优先,软编码兜底的原则,在遇到一些硬编码不可用的情况下可能就需要用到x264库进行软编码了,而此时RGB
本文是深入浅出ahooks源码系列文章的第十五篇,该系列已整理成文档-地址。觉得还不错,给个star支持一下哈,Thanks。本篇接着针对关于DOM的各个Hook封装进行解读。useFullscreen管理DOM全屏的Hook。该hook主要是依赖screenfull这个npm包进行实现的。选择它的原因,估计有两个:它的兼容性好,兼容各个浏览器的全屏API。简单,包体积小。压缩后只要1.1k。大概介绍几个它的API。.request(element,options?)。使一个元素全屏显示。默认元素是.exit()。退出全屏。.toggle(element,options?)。假如目前是全屏,则
本文是深入浅出ahooks源码系列文章的第十五篇,该系列已整理成文档-地址。觉得还不错,给个star支持一下哈,Thanks。本篇接着针对关于DOM的各个Hook封装进行解读。useFullscreen管理DOM全屏的Hook。该hook主要是依赖screenfull这个npm包进行实现的。选择它的原因,估计有两个:它的兼容性好,兼容各个浏览器的全屏API。简单,包体积小。压缩后只要1.1k。大概介绍几个它的API。.request(element,options?)。使一个元素全屏显示。默认元素是.exit()。退出全屏。.toggle(element,options?)。假如目前是全屏,则
本文是深入浅出ahooks源码系列文章的第十三篇,该系列已整理成文档-地址。觉得还不错,给个star支持一下哈,Thanks。本篇文章探讨一下ahooks对DOM类Hooks使用规范,以及源码中是如何去做处理的。DOM类Hooks使用规范这一章节,大部分参考官方文档的DOM类Hooks使用规范。第一点,ahooks大部分DOM类Hooks都会接收target参数,表示要处理的元素。target支持三种类型React.MutableRefObject(通过useRef保存的DOM)、HTMLElement、()=>HTMLElement(一般运用于SSR场景)。第二点,DOM类Hooks的tar
本文是深入浅出ahooks源码系列文章的第十三篇,该系列已整理成文档-地址。觉得还不错,给个star支持一下哈,Thanks。本篇文章探讨一下ahooks对DOM类Hooks使用规范,以及源码中是如何去做处理的。DOM类Hooks使用规范这一章节,大部分参考官方文档的DOM类Hooks使用规范。第一点,ahooks大部分DOM类Hooks都会接收target参数,表示要处理的元素。target支持三种类型React.MutableRefObject(通过useRef保存的DOM)、HTMLElement、()=>HTMLElement(一般运用于SSR场景)。第二点,DOM类Hooks的tar
本文是深入浅出ahooks源码系列文章的第十四篇,该系列已整理成文档-地址。觉得还不错,给个 star 支持一下哈,Thanks。上一篇我们探讨了ahooks对DOM类Hooks使用规范,以及源码中是如何去做处理的。接下来我们就针对关于DOM的各个Hook封装进行解读。useEventListener优雅的使用addEventListener。我们先来看看addEventListener的定义,以下来自MDN文档:EventTarget.addEventListener()方法将指定的监听器注册到EventTarget上,当该对象触发指定的事件时,指定的回调函数就会被执行。这里的EventTa
本文是深入浅出ahooks源码系列文章的第十四篇,该系列已整理成文档-地址。觉得还不错,给个 star 支持一下哈,Thanks。上一篇我们探讨了ahooks对DOM类Hooks使用规范,以及源码中是如何去做处理的。接下来我们就针对关于DOM的各个Hook封装进行解读。useEventListener优雅的使用addEventListener。我们先来看看addEventListener的定义,以下来自MDN文档:EventTarget.addEventListener()方法将指定的监听器注册到EventTarget上,当该对象触发指定的事件时,指定的回调函数就会被执行。这里的EventTa
漏洞详解。DOMXSS(Cross-sitescripting)是一种Web安全漏洞,它利用了浏览器的DOM(文档对象模型)解析机制,通过注入恶意代码来攻击用户。DOMXSS与传统的反射型或存储型XSS有所不同。在传统的XSS攻击中,攻击者通常在网页的URL或表单字段中注入恶意代码,用户访问网页时恶意代码就会被执行。而在DOMXSS攻击中,恶意代码被注入到网页的DOM中,当用户与网页交互时,恶意代码就会被执行。DOMXSS攻击的危害可能比传统的XSS攻击更加严重,因为它不需要将恶意脚本传递给服务器,因此很难检测和防止。攻击者可以利用DOMXSS来窃取用户的敏感信息、执行钓鱼攻击、劫持用户会话等
漏洞详解。DOMXSS(Cross-sitescripting)是一种Web安全漏洞,它利用了浏览器的DOM(文档对象模型)解析机制,通过注入恶意代码来攻击用户。DOMXSS与传统的反射型或存储型XSS有所不同。在传统的XSS攻击中,攻击者通常在网页的URL或表单字段中注入恶意代码,用户访问网页时恶意代码就会被执行。而在DOMXSS攻击中,恶意代码被注入到网页的DOM中,当用户与网页交互时,恶意代码就会被执行。DOMXSS攻击的危害可能比传统的XSS攻击更加严重,因为它不需要将恶意脚本传递给服务器,因此很难检测和防止。攻击者可以利用DOMXSS来窃取用户的敏感信息、执行钓鱼攻击、劫持用户会话等