Screenshot w HTML5
Wideo towarzyszy internautom niemal każdego dnia. Czy zastanawialiście się, jak zrobić screen’a z filmu w przeglądarce? Naturalnie można. Z pomocą przychodzi HTML5 wraz z metodą drawimage(). Co prawda funkcja obsługująca owe zdarzenia pojawiła się w specyfikacji już w 2008 roku, jednak jest do tej pory rozwijana i udoskonalana. Przejdźmy jednak do rzeczy.
Wideo towarzyszy internautom niemal każdego dnia. Czy zastanawialiście się, jak zrobić screen’a z filmu w przeglądarce? Naturalnie można. Z pomocą przychodzi HTML5 wraz z metodą drawimage(). Co prawda funkcja obsługująca owe zdarzenia pojawiła się w specyfikacji już w 2008 roku, jednak jest do tej pory rozwijana i udoskonalana. Przejdźmy jednak do rzeczy.
Podstawa
Kojarzycie pewnego przerośniętego króliczka?
Ten oto filmik posłuży nam za bazę do prezentacji metody drawimage(), która zawiera się w klasie getContext(’2d’). Podstawą do budowy przechwycenia obrazu będzie kod:
var context= document.querySelector('canvas').getContext('2d');
document.querySelector('button').addEventListener('click',function(){
context.drawImage(video, 0, 0, canvas.width, canvas.height);
});
Tworzenie obrazu
Do stworzenia obrazu będziemy korzystać z obsługi zdarzeń loadedmetadata. Zdarzenia jaki będziemy obsługiwać to po prostu klatki filmu, które następnie będziemy zapisywać do metody canvas, wraz z parametrami obrazu (szerokość, wysokość). Wygląda to następująco:
video.addEventListener('loadedmetadata', function() {
//obliczamy proporcje obrazu
ratio = video.videoWidth / video.videoHeight;
//definiujemy wymaganą szerokość 100 pikseli mniejszą niż szerokość wideo
w = video.videoWidth - 100;
//obliczamy wysokość obrazu z zachowaniem proporcji
h = parseInt(w / ratio, 10);
//definiujemy metodę canvas i jej parametry - szerokość i wysokość
canvas.width = w;
canvas.height = h;
}, false);
Następnie należy wykorzystać wcześniej wspomnianą metodę drawimage() i przekazać jej obraz jako parametr w momencie kliknięcia w przycisk.
function shot() {
//określamy pole na którym będzie zapisany nasz screen
context.fillRect(0, 0, w, h);
//cyk i gotowe
context.drawImage(video, 0, 0, w, h);
}
Efekt można zobaczyć poniżej.
Przeczytaj także

Tworzymy layout bloga
W internecie można znaleźć przeróżne, gotowe szablony do niemal każdego rodzaju stron internetowych. Co w przypadku chęci stworzenia strony według własnego pomysłu? Tworzenie stron internetowych wymaga nie tylko umiejętności technicznych, ale także zmysłu artystycznego.

Dialog, czyli natywne, wyskakujące okno
Okna dialogowe są często wykorzystywane na stronach internetowych. Potrzeba ich wykorzystania nasiliła się, gdy zaczęto wprowadzać na szeroką skalę powiadomienia o ciasteczkach na stronie. Do pewnego momentu wykorzystywano po prostu pojawiający się div, jednak dzisiaj jest też natywna możliwość wykorzystania elementu

Obrazy responsywne
Dzisiejszy wpis chciałbym poświęcić tematowi responsywnych obrazów na stronie internetowej. Temat bardzo istotny, gdyż bardzo wiele osób przegląda strony na urządzeniach mobilnych o różnej rozdzielczości. Dlatego przygotowuje się strony tak, aby zawierały obrazy responsywne.