2

各画像のサムネイルとともに、画像やその他のドキュメントを PostgreSQL テーブルに保存したいと考えています。元のドキュメントとサムネイルは、2 つの個別の bytea フィールドになります。PostgreSQL は Linux で実行されています。

画像データは複数の異なるアプリケーションから取得される可能性があるため、個々のアプリケーションがサムネイルを作成するのではなく、関数として PostgreSQL 内に (サムネイルを作成するための) 画像処理コードが必要です。PostgreSQL が画像のサムネイルを作成できる方法はありますか?

4

5 に答える 5

2

代わりに、すべてのアプリケーションで共通のインターフェースまたは API を使用することを提案してもよろしいですか?

私の写真プラットフォームには、すべてが通過するアップロード API がありますが、実際にアップロードを実行するには、約 4 つの異なる方法 (ブラウザー、デスクトップ、電話、およびソフトウェア プラグイン) があります。次に、アップロード API には、いくつかの強力でパフォーマンスの高いライブラリ (私は Python を使用しているため、PIL) を使用して画像を操作し、データベースに保存する機能があります (実際には、ファイル システムに保存し、. DB ですが、考え方は同じです)。

別の方法として、サムネイル ジェネレーター サービスをデータベースの外部に配置し、サムネイルがまだ生成されていないすべての行を時折ループして生成し、Postgres に保存し直すこともできます。

特にメモリ側で Postgres 内で画像操作を行うことになった場合、パフォーマンスが損なわれる世界を求めています。

于 2011-04-28T14:46:32.310 に答える
0

私は perl でいくつかの些細な関数をハッキングしただけですが、pl/perlu をインストールすれば適切なライブラリがたくさんある可能性があります。

pl/perl2 がオプションでない場合は、それに応じて pl/perl を構成します。

plperl.use_strict = true
plperl.on_init = 'use stuff1; use stuff2;'
于 2011-05-08T15:07:59.017 に答える
0

PostgreSQL が画像のサムネイルを作成できる方法はありますか?

いいえ。PostgreSQL はデータベース エンジンです。データの保存と取得、およびある程度の操作が可能です。しかし、その中で画像処理を行うと、行き過ぎてしまいます。画像のサイズ変更は、データベースの外で行う必要があります。

そして、他のコメンターが言うように、画像データをデータベース内に保存しないというオプションも検討してください - 一部のパスまたはロケーターのみです。これはオプションですが、多くの場合、より実用的です。関連するいくつかの質問を読んでください: DB に画像を保存する - はい、いいえ? , 少数の画像を保存する: blob または fs?

于 2011-04-28T16:52:11.487 に答える
-2

最も簡単な答え: 画像をデータベースに保存しないでください。遅く、効果がなく、拡張性がなく、バックアップに時間がかかります。

それらをファイルシステムに保存する場合は、ミドルウェアを追加してサイズを変更するか、すべての新しい画像のサイズを変更する単純なデーモンを追加するだけです。

于 2011-04-28T14:56:31.047 に答える