【前提】
当方、プログラミング経験0の初心者です。
現在、ほかの方が書かれたコードをコピーし、一つ一つ理解しながら適宜コードを変更し、プログラムを書いています。
どうしても解決できない問題がありましたので、質問させていただきます。
【実現したいこと】
GASにてGoogleFormにて収集した画像データをスプレッドシート上に挿入して、また画像データは必要に応じリサイズを行うプログラム。
【コード】 (都合上、ドライブのフォルダURLはxxxxとしています。)
1 function resize() { 2 var ss = SpreadsheetApp.getActiveSpreadsheet(); 3 ss.setActiveSheet(ss.getSheetByName('Improvement'), true); 4 var sheet = ss.getSheetByName('Improvement'); 5 var fileId = ss.getRange("D63").getValue(); 6 7 var images = sheet.getImages(); 8 9 for (var i = 0;i < images.length;i++) { 10 images[i].remove(); 11 } 12 var fileId1 = ss.getRange("F63").getValue(); 13 var res1 = ImgApp.doResize(fileId1, "300"); 14 var folder1 = DriveApp.getFolderById("xxxx"); 15 var file1 = folder1.createFile(res1.blob.setName("resized-file")); 16 var newfile1 = file1.getId(); 17 18 var response1 = UrlFetchApp.fetch("https://drive.google.com/uc?export=view&id="+newfile1); 19 var image1 = response1.getBlob(); 20 var ress1= ImgApp.getSize(image1); 21 var w1 = ress1.width; 22 var h1 = ress1.height; 23 24 25 if (w1 <= h1){ 26 var ww1 = [300-w1]/2 27 ss.insertImage(image1,34,41,ww1,0) 28 }else{ 29 var hh1 = [300-h1]/2 30 ss.insertImage(image1,34,41,0,hh1)} 31 32 var res = ImgApp.doResize(fileId, "300"); 33 var folder = DriveApp.getFolderById("xxxx"); 34 var file = folder.createFile(res.blob.setName("resized-file")); 35 var newfile = file.getId(); 36 var response = UrlFetchApp.fetch("https://drive.google.com/uc?export=view&id="+newfile); 37 var image = response.getBlob(); 38 39 var ress = ImgApp.getSize(image); 40 var w = ress.width; 41 var h = ress.height; 42 43 if (w1 <= h1){ 44 var ww1 = [300-w1]/2 45 ss.insertImage(image,3,41,ww1,0) 46 }else{ 47 var hh1 = [300-h1]/2 48 ss.insertImage(image,3,41,0,hh1)} 49 50 51 }
またこちらのライブラリをインストール?しております。
ImgApp
現状の問題点
上記のコード、30行目 InsertImage... のところで、”Exception: The blob format is unsupported.”というエラーが出てしまいます。
当該画像のリサイズ処理は行われておりましたので、同22行目まで(ライブラリのプログラム?)は問題なく処理が行えていると考えております。
なので、スプレッドシート上に画像を挿入する段階で問題が発生していると考えています。
またInsertImageメソッドは、2MB以上もしくは1024px以上の画像については処理できずエラーとなってしまうようですが、こちらも上記リサイズ処理で解決できているように考えています。
引用記事
【まとめ】
エラーメッセージにそのまま出ている通り、Blobフォーマット?に問題があるということなので、おそらく18~22行目に何か問題があるのかなと思っています。
恥ずかしながら勉強不足で、”Blob”など基礎的なことが理解できていないこともあり、解決できずにいます。
”ここをこうすればできる”など、お力添えいただければ幸いです。
稚拙な質問かもしれませんが、ご教授のほど宜しくお願いします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/06/30 12:25