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

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

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

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1894閲覧

PHPで既に反映されている同じ画像を探す方法は?

www

総合スコア15

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2015/01/03 03:53

PHPとMySQLを使ったシステムで同じ画像を探す方法を教えてください。

あるウェブサイトにユーザが画像をアップロードする機能があります。
この機能で、すでにアップロードされた画像をチェックしたいと思っています。

私のアイディアでは、
1. 画像のそれぞれに画像ハッシュのようなものを作成する。
2. 新しくアップロードされた画像にもハッシュを作成し、データベースで他のものと比べる。

方法を調べてみたのですが、問題点が多々ありました。

1. PHPの非標準の拡張子が必要(もしくはPHPではない)・・・
私個人にとってはそれでもよいのですが、CMSのプラグインとして作成したいので、これは出来ません。

2. 二つの画像を比べる方法は見つかったのですが、一枚と例えば数千の画像と比べたいと思っています。
一対一で調べる方法は効率よくありませんよね・・・・

違うサイズ、上書きされたJPG、もしくは違うJPG圧縮でも大丈夫です。また似ている画像のみ探す方法でも良いです。
何か簡単な方法はありませんか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

私も同じような事をした事があります。
最初、質問者さんと同じように、サイズに関係なくそれぞれの画像の文字列を作ったのですが、
DBをすぐいっぱいにしてしまうので効率が悪かったです。

そこで、小さい画像を使ってみたら上手くいきました。
例えば
10px*10px 画像を使い、imagecolorat()関数を使ってハッシュを作成します。

imagecolorat()
参照:
http://php.net/manual/ja/function.imagecolorat.php

画像のrgb色を受け取るときに、50近くに丸めます。
数字はどの程度画像の検索を細かくやりたいかによって変更すれば大丈夫です。

例:

lang

1// ピクセル RGB 2rgb(105, 126, 225) // 元 3rgb(100, 150, 250) // 50近くに丸めたあと 4

これを全てに行って配列にして、データベースにbase64_encode()として格納してシリアル化しました。

似ている画像を検索するときは、アップロードされたのと同じプロセスを行います。
データベースから画像ハッシュを抽出して全てと比較し、丸めたrgbが一致するものを見つけますよ。

投稿2015/01/03 09:30

cmu2008

総合スコア93

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問