22.9.13 【補完テクニック】画像をクライアント側で処理する

扱うデータに画像を含むようなアプリを作る場合、クライアント側にある画像ファイルあるいはスマホなどであればその場で撮影した画像をサーバーにアップロードして保存することになります。最近のスマホのカメラは大変解像度が高くなり、そのままだとサイズが大きすぎるので、縮小処理したい場合も多いと思います。

Buddyではサーバーに保存された画像ファイルを縮小処理する方法も用意されていますが、クライアント側で縮小してからサーバーにアップロードすることができれば、通信量が減るのでよりよい方法となります。

これを実現するには、
1)選択した画像の内容を読み取る。
2)画像を縮小する。
3)縮小した画像をアップロードする。
という処理をJavascriptでおこなう方法を知る必要があります。
具体絵的には、1)はFileReaderクラスの使い方、2)はcanvasの機能、3)は画像データをアップロードに必要なFileオブジェクトにする方法、そして共通するテクニックとしてデータURLの扱い、ということになります。これらをすべて学んで適切に組み立てるのは結構面倒です。そこで、必要な機能をまとめたライブラリファイルとしてimagefiletool.jsを作成しました。

imagefiletool.js です。← このファイル名部分をクリックしてダウンロードしてください。

imagefiletool.jsを、アプリのfiles/javascriptsフォルダに入れることによって、スクリーンのスクリプトでImageFileToolというクラスと、ImageUtilというオブジェクトが使えるようになります。これらには次の機能があります。

new ImageFileTool() で得たオブジェクトで次のメソッドを使う
  readFile() 画像ファイルのFileオブジェクトから読み取り、縮小して内部のキャンバスに描画
  getSrc() その画像を表示するsrc,width,heightを得る
  fileForUpload() その画像をアップロードするFileオブジェクトを得る
次のユーティリティもある。これはImageFileToolとは独立して使える。
  ImageUtil.getSize() 画像の幅と高さを得てコールバックで返す
  ImageUtil.calcShrinkSize() 幅と高さを指定の最大長辺値内になるように計算する

スクリーンで、ファイル選択モジュールFILE1、画像モジュールIMAGE1、ボタンBUTTON1、が配置されているとして、FILE1で画像を選択したら縮小処理するとともに画像をIMAGE1に表示し、BUTTON1をクリックしたらアップロードする、というスクリプトは次のようになります。

	// 画像ファイル選択時
	FILE1_onChange: function(evt){
		var files = this.items.FILE1.getFiles();
		if(files.length != 1) return;
		this.ift.readFile(files[0], (function(err){
			if(err) return console.log(err);
			var src = this.ift.getSrc();
			this.items.IMAGE1.setSrc(src.src);
			this.items.IMAGE1.setStyle({width: src.width, height: src.height});
		}).bind(this));
	},
	// ボタンクリック時
	BUTTON1_onClick: function(evt){
		var file = this.ift.fileForUpload();
		var dir = 'files/…';  // アップロード先のフォルダ
		api.request.upload(api.constants.appName, dir, [file], (function(error, result){
			// アップロード結果にもとづく処理
			…
		}).bind(this));
	},
	// スクリーンロード時
	onLoad: function(){
		// maxはアップロードする縮小画像の長辺サイズ、showmaxは表示する縮小画像の長辺サイズ
		this.ift = new ImageFileTool({max: 800, showmax: 150});
	},

このように、縮小処理とアップロードを簡単に行うことができます。

なお、カメラで撮影した画像を読み取った場合、右や左に回転した状態の画像となる場合があります。imagefiletool.jsではこれを補正する処理も行っています。興味のある方はソースコードをご覧ください。

(2022/9/13 中島)

22.8.16 デモアプリに電帳法対応 証憑管理アプリを追加しました!

「デモアプリ(無料)」に改正電子帳簿法に対応した『証憑管理』アプリを追加しました。
Buddyユーザーの方はBuddy2にて「開発メニュー>リポジトリから作成」ですぐにお使いいただけます。

猶予期限の迫る電子帳簿保存法への対応にも、ぜひBuddyをお役立てください!

デモアプリ

22.6.15 【重要】InternetExplorerにかかるサポート終了について【6/30まで】

日頃、webアプリ開発プラットフォーム「Buddy」をご愛顧頂き
誠にありがとうございます。

明日6月16日をもってマイクロソフト社がInternetExplorer(以下、IE)
のサポートを終了することを受け、「Buddy」につきましても、
IEに関するサポートを「6月30日(木)23:59」で終了させて頂きます。

上記日程以降、BuddyおよびBuddyで開発したアプリの動作にかかる、
IEの機能に起因する事象(不具合等を含む)はサポートの対象外となります。
また動作保証対象ブラウザからも、IEを対象外とさせて頂きます。

-------------------
【現在、BuddyをIEでご利用頂いているお客様へ】
[1.Buddyでのアプリの開発運用について]
現状でIEで動作している機能については、当面は問題なく動作するかと思います。
但しバージョンアップにともなって動作しない部分が徐々に増えてゆくことが
考えられます。

[2.Buddyで作成したアプリの動作について]
現状で動作しているアプリは、当面は引き続き動作する可能性が高いです。
但し、今後アプリの動作に影響するようなバージョンアップも考えられ、
それらに起因するIE特有の事象に関してはサポート対象外となります。

安全なアプリの開発運用やご使用のため、サポート対象のブラウザ使用を
お早めにご検討ください。
-------------------

-------------------
【IEサポート終了日程】
 6月30日(木)23:59
【6月30日以降の動作保証対象webブラウザ】
 ・Edge ・Chrome ・Firefox ・Safari
-------------------

本件に関するご質問等は製品サイトの「お問合せ」よりご連絡ください。

上記、ご理解のほどよろしくお願いいたします。

 

Buddyは、アプリ開発、デザイン、デバッグ、稼働までをトータルにサポートする
オールラウンドなローコードwebアプリ開発ツールです。
ノーコード開発とローコード開発、それぞれのメリットを活かした高い開発力とスピード感、
そしてBuddy独自の高い拡張性で、企業のDXを強力に支援します。

  • プロポーザル支援システム

ローコード開発ツールのイメージが変わる

DBやUIといったアプリのクライアントサイドだけでなく、
APIによる外部機器連携や外部webサービスサーバーサイドの開発もBuddyなら単体で可能です。
”開発ツールではDBなど基礎部分の開発しか行えず、大部分は外部開発に頼ったたため結局費用が高くついた…”といったことも
Buddyならありません。

  • IoT機器連携
     
    センサーなどのIoT機器と連携し、データの取得や動作指示などを行えます。
    取得データの加工、出力なども自由にでき、センサーデータを幅広く活用できます。

直接操作可能なバーチャートや手書きメモの入力等、GUI開発も自由に行えます。
また、帳票作成もサポートしており、様々な形式の帳票作成も外部サービスに頼らずBuddyだけで完結できます。

  • ガントチャート
     
    内部データと連携したガントチャート表示や、バーをスワイプによるデータ編集など
    DB上の情報を様々な形式で表現できます。

奥深い開発力だけでなく、ノーコード開発ツールのような手軽さとスピード感もBuddyの持ち味です。
初期開発の手間を軽減するだけでなく、
プログラム記述の心得がないエンドユーザー様への活用機会創出にもお使いいただけます。

デモ画面での操作を下記動画にてご覧いただけます。

いまだに根強い「クラウドサービスへの不安」についてもご安心ください。
一般的なセキュリティ施策に加えIPアドレス単位まで設定できるアクセス権限管理機能など
各ユーザーのセキュリティルールに則った運用ができる機能を用意しています。

  • アプリごとのバックアップ&リストア
     
    好きな周期でアプリ内のDB情報を自動でバックアップ。リストアも簡単に行えます。

受託開発サービス

Buddyをベースにしたアプリのオーダーメイドも承ります。

1から開発基盤を用意するより高速・低コストでの開発が可能です。

まずは機能を試してみたい方はこちら ↓

30日間無料お試し

導入をご検討の方はこちら ↓

ご利用お申込み
オンライン相談会

「導入前に、サービスについて詳しく聞きたい」
「自社に合うBuddyの活用方法を知りたい」という方向けに、
弊社スタッフによる無料相談会を実施しております。
相談会は、弊社へお越し頂くほか、オンラインを介した
テレビ会議にも対応しています。

1回につき1社様のみの対応とさせて頂いているため、
他の企業様のことを気にすることなく安心してご相談頂けます。
どうぞお気軽にお申し込みください。

ご相談費用 無料
実施方式 オンライン会議※
※Zoom、Skypeに対応しております。他ツールの利用をご希望の際はご相談ください。
対応時間 土日祝祭日を除く随時 10:30~16:30
※相談時間は90分程度を見込んでおります。
催行人数 1名~5名
お申込み方法 メールによるご予約になります。
「希望日時」「人数」を明記のうえ、下記アドレス宛にご連絡ください。
メール:info@info-lab.co.jp
担当 :岡田
※場合により、ご予約日時の調整をお願いする場合があります。予めご了承ください。

明治コンサルタント株式会社 様

  • プロポーザル支援システム
  • 業務実績管理システム

イーグル建創株式会社 様

  • 社員情報履歴管理アプリ
  • 売上げ目標/実績管理アプリ
  • 協力会社支払い管理アプリ

日本マルチメディア・
イクイップメント株式会社 様

  • 専門工事業向け 工程管理システム
  • 専門工事業向け 申請管理システム

株式会社ハイブリッチ 様

  • 支払情報管理システム(協業)

BM&W株式会社 様

  • 水位観測アプリ など

and more

まずは機能を試してみたい方はこちら ↓

30日間無料お試し

導入をご検討の方はこちら ↓

ご利用お申込み

Buddyに関するご質問、ご相談等ございましたら、お気軽にご連絡ください。

 

    プライバシーポリシーをお読み頂き、下の□にチェックを入れてください。