質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

0回答

586閲覧

canvasで出力した画像の大きさを変更したいです

nanase1212

総合スコア5

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/10/25 05:15

目的:canvasにて出力した画像のサイズの縮小

動画のコピーフレームをjavascriptを用いてweb上に出力したいのですが大きさの指定方法がわかりません。
出力しても動画ファイル自体のサイズになってしまいます。
また、canvas自体のサイズを変更しても出力したコピーフレームが見切れてしまう形でサイズが調整されてしまいます。

html

1<html> 2 <html lang="ja"></html> 3 <head> 4 <meta http-equiv="content-type" charset="utf-8" /> 5 <title>動画編集</title> 6 <link rel="stylesheet" href="style.css" /> 7 </head> 8 <body> 9 <input type="file" id="inputfile" /> 10 <video 11 id="video" 12 controls 13 preload="metadata" 14 width="514" 15 height="360" 16 ></video 17 ><canvas id="canvas"></canvas><br /> 18 <input type="button" value="copy frame" onclick="copyFrame()" /> 19 <br /> 20 <button> 21 <a id="download" download>ダウンロード</a></button 22 ><br /> 23 <script src="main.js"></script> 24 </body> 25</html> 26

javascript

1let inputfile = document.getElementById("inputfile"); 2let video = document.getElementById("video"); 3let dlc = document.getElementById("download"); 4let canvas = document.getElementById("canvas"); 5 6inputfile.addEventListener( 7 //ファイルAPI 8 "change", 9 function (e) { 10 let file = e.target.files; 11 let reader = new FileReader(); 12 console.log(reader); 13 reader.readAsDataURL(file[0]); 14 reader.onload = function () { 15 video.src = reader.result; //result = URL の文字列 16 dlc.href = reader.result; //<a>のhref要素にURLを代入 17 }; 18 }, 19 false 20); 21 22 23function copyFrame() { 24 let cCtx = canvas.getContext("2d"); 25 canvas.width = video.videoWidth; // canvasの幅と高さを、動画の幅と高さに合わせる 26 canvas.height = video.videoHeight; 27 28 cCtx.drawImage(video, 0, 0); // canvasに関数実行時の動画のフレームを描画 29 30 let imgdata = cCtx.getImageData(0, 0, video.videoWidth, video.videoHeight); // pixelデータを取得 31 for (let i = 0; i < imgdata.data.length; i += 4) { 32 // imgdata.data: [R,G,B,alpha,R,G,B,alpha...] 33 let gray = 34 (imgdata.data[i] + imgdata.data[i + 1] + imgdata.data[i + 2]) / 3; // グレースケール値計算 35 imgdata.data[i] = imgdata.data[i + 1] = imgdata.data[i + 2] = gray; // RGB 36 imgdata.data[i + 3] = 255; // alpha 37 } 38 cCtx.putImageData(imgdata, 0, 0); // 描画 39 40} 41

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問