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

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

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

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

Q&A

解決済

1回答

1065閲覧

p5js(javaScript)でQRコードをcanvas上に表示してsaveCanvasしたい

kikpond15

総合スコア2

JavaScript

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

0グッド

0クリップ

投稿2021/10/18 18:33

こんにちは.

私はp5jsというJavaScriptのためのクリエイティブコーディング言語を使用しています.
そして現在,「画像とQRコードを表示して保存する」といったことをやろうとしています.

画像のCanvas表示と保存は出来て,QRコードの表示もなんとか出来ました.
ですがQRコードを含めて保存する方法が上手くいかず困っております.

ここのコードを参考にQRコードの生成をしました.
https://editor.p5js.org/yeony102/sketches/Bk7-LWKgM

このコードではQRコードをDivで生成しています.
これをCanvasに追加しCanvasを画像として保存(saveCanvas)したいと思っています.

HTMLやJavaScriptの知識が浅いので,どなたかお力お貸しください.
よろしくお願いします.

jacaScript

1 2let qrcode; 3let div; 4 5function setup() { 6 createCanvas(260, 260); 7 8 9 div = createDiv(""); 10 div.id("qrcode"); 11 12 div.style("width", "256px"); 13 div.style("height", "256px"); 14 div.style("padding", "2px"); 15 div.style("background-color", "grey"); 16 div.position(10,10); 17 18 qrcode = new QRCode("qrcode"); 19 20// makeCode(); 21} 22 23function draw() { 24// background(255,0,0); 25} 26 27function makeCode() { 28 let url = "www.naver.com"; 29 30 qrcode.makeCode(url); 31} 32 33 34function keyPressed() { 35 36 if(key == '0') { 37 38 div.remove(); 39 40 div = createDiv(""); 41 div.id("qrcode"); 42 43 div.position(0,0); 44 45 qrcode = new QRCode("qrcode"); 46 } 47 else if (key == '2') { 48 makeCode(); 49 } 50 else if (key == '3') { 51 saveCanvas('myCanvas', 'jpg'); 52 } 53}

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

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

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

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

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

Lhankor_Mhy

2021/10/19 01:10

saveCanvas には何が入っていますか?
kikpond15

2021/10/19 03:29 編集

申し訳ありません,javaScriptについて知識が疎いもので内部的な処理については以下のgithubページの1488行からのようになっております. https://github.com/processing/p5.js/blob/main/src/io/files.js 質問の意図が違いましたら申し訳ございません. よろしくお願いします.
guest

回答1

0

自己解決

周りの知人に知恵を借りなんとか解決?やりたいことはできるようになりました.
どうやらQR生成ができていない段階で保存処理をやってしまっていたのが原因でした.

以下,解決したコードの一部を記載します.

javaScript

1 if (inputURL != null) { 2 qrDiv.makeCode(inputURL.value()); 3 const qrCodeContainer = document.getElementById('qrcode'); 4 new QRCode(qrCodeContainer, inputURL.value()); 5 const onGeneratedQrImage = function() { 6 const qrCodeImage = qrCodeContainer.children[1]; 7 const base64 = qrCodeImage.getAttribute('src'); 8 if (base64 === null) { 9 setTimeout(onGeneratedQrImage, 100); 10 } else { 11 console.log(qrCodeImage); 12 console.log(base64); 13 qrImage = loadImage(base64); 14 } 15 }; 16 setTimeout(onGeneratedQrImage, 100); 17 }

作りたかったイメージ生成のプログラムも完成したので下に載せておきます.
https://github.com/kikpond15/code2frame

投稿2021/12/09 05:34

kikpond15

総合スコア2

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問