


I have been studying canvas during this period, and I suddenly thought of making a function that can take screenshots of videos, and then pull the pictures to make emoticons, hahahahahaha~~
Production method:
1 .Load the video on the page
When using canvas to create this screenshot function, you must first ensure that the video has been loaded on the page, so that you can operate it conveniently. If you use the following method of directly embedding the
<video loop controls id="testmp4" width="500" height="400" > <source src="test.mp4" type="video/mp4"> <source src="test.webm" type="video/webm"> <source src="test.ogg" type="video/ogg"> </video>
As mentioned in my article "html5 and video", browsers support different preloading progress and load events for videos. , which will affect the playback of video and the triggering of other events. So here we use js to construct video to introduce video.
Be careful when introducing videos in this way. Multiple sources cannot be introduced, so you must first determine the browser's support for video formats.
1.1 Use the canPlayType() method of video to determine the supported format
The canPlayType() method needs to pass in a parameter, which is the format of the video.
Common values:
video/ogg; video/mp4; video/webm;
Or include the encoder:
video/ogg;codecs="theora,vorbis" video/mp4;codecs="avc1.4D401E, mp4a.40.2" video/webm;codesc="vp8.0, vorbis"
Return value: Indicates the support level of the web page: "probably" - most likely to support (only this is returned when the input value has an encoder); "maybe " - may be supported; "" - (empty string) is not supported;
function videoType(video){ var returnType=''; if(video.canPlayType('video/mp4')=='probably'||video.canPlayType('video/mp4')=='maybe'){ returnType= 'mp4'; }else if(video.canPlayType('video/ogg')=='probably'||video.canPlayType('video/ogg')=='maybe'){<br> returnType= 'ogg'; <br> }else if(video.canPlayType('video/webm')=='probably'||video.canPlayType('video/webm')=='maybe'){<br> returnType= 'webm'; <br> }<br> return returnType; }
This function can determine the format supported by the browser for video.
1.2 Use js to dynamically load video tags
After determining the supported formats of the browser, since I am using chrome, my browser supports videos in mp4 format, and then we dynamically Create a video tag.
var videoElem; var videop; function createVideo(){ videoElem=document.createElement("video");//创建video videop=document.getElementById("videopanel");//获取video的外层容器 videop.appendChild(videoElem); var vtype=videoType(videoElem);//判断浏览器支持的格式 if(vtype==""){ videop.innerHtml('不支持video') }else{ videoElem.setAttribute('src',"text."+vtype); } }
Since we want to create a screenshot function here, a simple video does not have a screenshot interface, so we need to copy it to canvas and play the video on canvas, so here we first The video is hidden (display:none).
2. Use canvas to copy the video
Now the video has been played on the browser, next we copy it to the canvas, first create the canvas, and then get the canvas context, these are not said. How to draw video on canvas, here we need to use a function. Usage of drawImage function
1.drawImage(img,x,y): Draw an img at the position (x,y) of the canvas;
2.drawImage(img,x,y , width, height): Draw an img with width width and height at the position (x, y) of the canvas;
3.drawImage(img,sx,sy,swidth,sheight,x,y, width, height): Draw a screenshot of the width and height of the img at the (sx, sy) position of the canvas at the (x, y) position. The image must be scaled to the width and height when drawn on the canvas.
The above is the usage of drawImage. This function is very powerful.
Back to taking screenshots, we have now created a canvas on the browser - contextVideo, and then we draw the video here:
contextVideo.drawImage(videoElem,0,0);
Then we can see A picture is drawn in the canvas, but the video is constantly changing, so we need to use the setInterval function to continuously draw the picture using the video as the source.
setInterval(function(){<br> contextVideo,drawImage(videoElem,0,0);<br>},100)
The size of the time interval here will affect whether the video playback will freeze.
At this point we have moved the video to canvas for display. Next make a screenshot.
3. Make a screenshot to display the canvas panel
Here we need to draw another canvas on the page - contextImg, and then use the drawImage method again to take a screenshot.
contextImg.drawImage(canvasVideo,0,0,canvasVideo.width,canvasVideo.height);
This code draws the first canvas onto the second canvas.
4. Make a screenshot button
Create a button, and then bind the click event. After clicking, the function in the previous step will be called, so that you can make a screenshot.
After the picture is cut out, you can right-click the picture to save it, and then import it into PS to create an emoticon package.
The above is the content of the example of video screenshot function implemented by canvas and html5. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!

MicrodatainHTML5enhancesSEOanduserexperiencebyprovidingstructureddatatosearchengines.1)Useitemscope,itemtype,anditempropattributestomarkupcontentlikeproductsorevents.2)TestmicrodatawithtoolslikeGoogle'sStructuredDataTestingTool.3)ConsiderusingJSON-LD

HTML5introducesnewinputtypesthatenhanceuserexperience,simplifydevelopment,andimproveaccessibility.1)automaticallyvalidatesemailformat.2)optimizesformobilewithanumerickeypad.3)andsimplifydateandtimeinputs,reducingtheneedforcustomsolutions.

H5 is HTML5, the fifth version of HTML. HTML5 improves the expressiveness and interactivity of web pages, introduces new features such as semantic tags, multimedia support, offline storage and Canvas drawing, and promotes the development of Web technology.

Accessibility and compliance with network standards are essential to the website. 1) Accessibility ensures that all users have equal access to the website, 2) Network standards follow to improve accessibility and consistency of the website, 3) Accessibility requires the use of semantic HTML, keyboard navigation, color contrast and alternative text, 4) Following these principles is not only a moral and legal requirement, but also amplifying user base.

The H5 tag in HTML is a fifth-level title that is used to tag smaller titles or sub-titles. 1) The H5 tag helps refine content hierarchy and improve readability and SEO. 2) Combined with CSS, you can customize the style to enhance the visual effect. 3) Use H5 tags reasonably to avoid abuse and ensure the logical content structure.

The methods of building a website in HTML5 include: 1. Use semantic tags to define the web page structure, such as, , etc.; 2. Embed multimedia content, use and tags; 3. Apply advanced functions such as form verification and local storage. Through these steps, you can create a modern web page with clear structure and rich features.

A reasonable H5 code structure allows the page to stand out among a lot of content. 1) Use semantic labels such as, etc. to organize content to make the structure clear. 2) Control the rendering effect of pages on different devices through CSS layout such as Flexbox or Grid. 3) Implement responsive design to ensure that the page adapts to different screen sizes.

The main differences between HTML5 (H5) and older versions of HTML include: 1) H5 introduces semantic tags, 2) supports multimedia content, and 3) provides offline storage functions. H5 enhances the functionality and expressiveness of web pages through new tags and APIs, such as and tags, improving user experience and SEO effects, but need to pay attention to compatibility issues.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Zend Studio 13.0.1
Powerful PHP integrated development environment

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

SublimeText3 English version
Recommended: Win version, supports code prompts!

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool
