文字数制限ですべてが出せませんが、画像を読み込んで複数のcavasを利用し、トリミングするものを作ろうとしています。
ファイルを読み込んで描画→トリミングはうまくいきました。
javascript
1//一部ですが今回の質問部分でうまくいっている 2$("#upload_file").change(function() { 3 var file = this.files[0]; 4 if (!file.type.match(/^image/(png|jpeg|gif)$/)) return; 5 6 var image = new Image(); 7 console.log(image) 8 var reader = new FileReader(); 9 10 reader.onload = function(e) { 11 image.onload = function() { 12 13 var min_width = Math.min(this.width, max_canvas_size.width); 14 var min_height = Math.min(this.height, max_canvas_size.height); 15 var scale = Math.min(min_width / this.width, min_height / this.height); 16 var size = {width: this.width * scale, height: this.height * scale}; 17 18 resizeCanvas(size.width, size.height); 19 layer1Ctx.drawImage(image, 0, 0, size.width, size.height); 20 updateCanvas(); 21 22 $("#upload_button").attr('filename', file.name); 23 $("#upload_button").show(); 24 25 // load file on base buffer 26 base.width = this.width/3; 27 base.height = this.height/3; 28 baseCtx.drawImage(image, 0, 0,this.width/3,this.height/3); 29 } 30 image.src = e.target.result; 31 } 32 33 reader.readAsDataURL(file); 34 });
layer1に描画してほかのcanvasと連携していきます。
今回、すでに保持しているblobデータを描画したいと思っています。
blob:file:///665a1508-78d6-44a0-8020-cfbb47f6d1f3
↑imgUrlです
この描画の仕方が分かりません。
上を少し変えて、
javascript
1$('#testbtn').click(function(){ 2 //20201008 3 var imgUrl = window.opener.$('#kakusi').text(); 4 console.log(imgUrl + "画像のアドレス") 5 6 var image = new Image(); 7 image.src = imgUrl ; 8 console.log(image) 9 var reader = new FileReader(); 10 11 reader.onload = function(e) { 12 image.onload = function() { 13 14 var min_width = Math.min(this.width, max_canvas_size.width); 15 var min_height = Math.min(this.height, max_canvas_size.height); 16 var scale = Math.min(min_width / this.width, min_height / this.height); 17 var size = {width: this.width * scale, height: this.height * scale}; 18 19 resizeCanvas(size.width, size.height); 20 layer1Ctx.drawImage(image, 0, 0, size.width, size.height); 21 updateCanvas(); 22 23 24 // load file on base buffer 25 base.width = this.width/3; 26 base.height = this.height/3; 27 baseCtx.drawImage(image, 0, 0,this.width/3,this.height/3); 28 } 29 image.src = e.target.result; 30 } 31 32 reader.URL.createObjectURL(blob) ; 33 });
とimageにデータ情報を持たせようとしたのですがうまくいきません。
ネットでいただいた情報を参考にトライ&エラーでやっているので基本的なことが分かっていませんがどなたか教えてください。