基本的に音楽アルバムのアートワークとそのさまざまなサイズを処理するデータベースを作成しています。アルバム アートワークは、サムネイル、メイン カバー画像、ズーム画像、その他の種類の画像で構成されます。アルバムのフォーマットによってサイズ比率のアスペクトが異なります。つまり、CD アルバムのサムネイルは 50 ピクセル x 50 ピクセルですが、カセットの場合は 35 ピクセル x 50 ピクセルになります...
すなわち:
CD には、3 つ以上のサイズ (サムネイル、メイン、ズームなど) の表紙アートワーク (タイプ) が含まれます。
CD には、3 つ以上のサイズ (サム、メイン、ズームなど) のインレイ CD アートワーク (タイプ) も含まれます。
ネットで検索すると、これを達成するためのさまざまな方法があるようです。
方法 1:
- データを入力するための入力フィールドを持つフォームを用意する
- さまざまなサイズを作成するために使用される画像 (高品質の画像... imageX と呼びましょう) をアップロードするためのアップロード入力フィールドを用意します。
- imageX が受け入れられるかどうかを検証します (サイズ、タイプなど...)
- その場でさまざまなサイズを作成し、作成されたサイズごとにデータベースにレコードを追加します。サイズ (幅と高さ) とファイル名が各レコードに含まれています
データベース モデル:
artworktype
==========
artworktype_id, artworktype
artworksize
==========
artworksize_id, artworksize
artwork
==========
artwork_id, album_id, artworktype_id, artworksize_id, filename, filenamewidth, filenameheight
長所:
幅と高さが含まれています (サイズを取得するために PHP の imagegetsize を起動する必要はありません)。
短所:
冗長データ?
方法 2:
- データを入力するための入力フィールドを持つフォームを用意する
- さまざまなサイズを作成するために使用される画像 (高品質の画像... imageX と呼びましょう) をアップロードするためのアップロード入力フィールドを用意します。
- imageX が受け入れられるかどうかを検証します (サイズ、タイプなど...)
- その場でさまざまなサイズを作成し、それに応じてファイルシステムに移動します (命名規則は決定されます)。
- アップロードされたファイルのみのレコードをデータベースに作成します。
- PHP にサイズを決定させ、命名規則を使用して他のサイズを取得します。
データベース モデル:
artworktype
==========
artworktype_id, artworktype
artwork
==========
artwork_id, album_id, artworktype_id, filename
長所:
冗長性なし
短所:
サイズを取得するには、PHP の getimagesize 関数が必要です。イメージとしては許容範囲です。ただし、多くの画像 (サムネイルのバッチなど) の場合、サーバーに負担がかかる可能性があります。
これを達成するための標準はありますか?他の人はどのようにしていますか?ご意見はありますか?
EDITED:私はデータベース内のバイナリデータのファンではありません...そのオプションは問題外です...