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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Q&A

解決済

2回答

349閲覧

Webページ上に画像の検索機能が付いたデータベースのようなものを設置したい。

退会済みユーザー

退会済みユーザー

総合スコア0

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

0グッド

2クリップ

投稿2017/10/16 08:39

###前提・実現したいこと
Webページ上に画像の検索機能が付いたデータベースのようなものを設置したいのですが、どのような言語や環境が適しているかわからないため、教えていただきたいです。Webページを運用するサーバーはLinuxの予定です。

実装したい機能は以下の通りです。
プログラミング初心者のため無理難題などがあったら申し訳ないです。

・画像の検索機能
画像の撮影日時で年月日と時間を
〇年〇月〇日 から 〇年〇月〇日 まで
〇時〇分 から 〇時〇分 まで
のように範囲を指定して検索できるようにしたいです。

・フォルダに保存した画像を自動でデータベースのようなものに追加
あらかじめフォルダを作っておき、そこに画像を保存することで自動で更新や読み込みがされるようにしたいです。

・検索結果の表示
検索結果で出てくる画像はサムネイルで表示し、クリックすると元画像が出てくるように。
画像の中または画像の横に撮影日時を表示するようにしたいです。

できれば実装したい機能は以下の通りです。

・画像の明るさで検索
明るい 普通 暗い などで検索。

・検索結果で出てくる画像のサイズ選択
検索した際に出てくる画像のサムネイルの大きさを2,3種類程度から選べるように。

###補足情報(言語/FW/ツール等のバージョンなど)
使用する画像の名前は2017年01月02日03時04分00秒の場合
20170102030400.jpg
のようになっていて、一応名前からでも時間を判別することができるようになっています。
私自身プログラミングをあまりしたことがないため質問内容に不備があったら申し訳ございません。

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

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

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

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

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

guest

回答2

0

どのような方法を試したのか記載がほしいところですが。。。
いくつか方法がありそうです。

・データベースを使用する方法(1)
データベースに、画像ファイルのパスを入れておき、必要に応じて、レスポンスを返す。
・データベースを使用する方法(2)
データベースに、画像ファイルそのものを入れておき、必要に応じて、レスポンスを返す。
・データベースを使用しない方法
ファイル名とディレクトリで属性を管理して、必要に応じて、レスポンスを返す。
ディレクトリに入れられるファイル数に注意が必要。

等々。

どの案を採用してもサーバサイドの言語で制限されるものは無いです。ので、自身の得意な言語を選ぶか、他の仕様を精査するかして決定すれば良いです。

投稿2017/10/16 23:47

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2017/10/17 11:07

回答ありがとうございます。
guest

0

ベストアンサー

SQLのテーブルに全画像のメタデータを入れるのがいいでしょう。

テーブルの属性として撮影日時、明るさ、サイズ、ファイルパス、サムネイルのファイルパスを用意し、画像追加時に明るさやサイズを計算しサムネイルを生成してこのテーブルに追加します。

Webサーバーとしては、とりあえずNode.jsはいいと思います(というかそれ以外よく知らないです)。phpだとサーバーサイドレンダリングになるので、例えば検索条件を変える度にwebサーバーがページ全体をレンダリングする必要がありますし、クライアントでも画面が一旦真っ白になって最初からページが読み込まれることになります。

なので、クライアントがAPIを通じて検索結果をサーバーから取得し動的にページを更新するのがいいと思います。Node.jsのWeb API ServerのライブラリとしてはExpressが最も人気です(たぶん)。リクエストに応じてSQL serverとやり取りします。

クライアントサイドはjsですが、apiを通じて検索結果をとってきて表示するので、テンプレートに基づくUIライブラリを使ったほうがいいかなと思います(jQueryでもできなくはないですが)。個人的にはVue.jsが好きです。

・フォルダに保存した画像を自動でデータベースのようなものに追加

あらかじめフォルダを作っておき、そこに画像を保存することで自動で更新や読み込みがされるようにしたいです。

特定のフォルダー内の変更を検知することはできると思います。
Node.jsにはそのようなライブラリがあります。
https://github.com/paulmillr/chokidar

投稿2017/10/16 16:11

karamarimo

総合スコア2551

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

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

退会済みユーザー

退会済みユーザー

2017/10/17 11:06

回答ありがとうございます。 実践してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問