2012-04-24 5 views
0

(サイズ> 80 MB)という大きなイメージをWebページに読み込もうとしています。ユーザーは、一度に全体の画像を見る必要はなく、要求された部分だけを見る必要があります。イメージを複数のピースに分割し、ユーザーの要求に応じて結合する方法

画像の寸法は、約10k x 10kです。

少し見渡しましたが、問題の合理的な解決策を見つけることができませんでした。

私は必要に応じていくつかの部分に画像を分割して(それぞれ9枚、3k×3k)、ユーザーの要求としてページにロードしたり、画像の次のセクションに移動したいと思います(例:ifユーザーは3k x 3kの境界を横切り、サーバーは必要に応じてサイドまたはボトムを送信します)。

イメージを分割する方法を見つけましたが、動的にそれを行い、それらを動的に縫う方法を見つけることができませんでした。

UPDATE

私はマイクロソフトディープズーム作曲を使用してみましたが、それはうまくいきませんでした。このような大きな画像サイズはサポートしていないと思います。 Microsoft PhotoSynthで同じイメージを試してみたところ、32MBまでのファイルしかサポートしていないというエラーメッセージが表示されました。 ディープ・ズーム・コンポーザー写真Synthは同じファイル形式を使用しているので、同じファイルサイズの制約があると思います。

ファイル形式が正しくないであるが、ファイルが正しい形式(つまり、jpg)であるため、意味のあるエラーメッセージが表示されませんでした。それは私はあなたがより扱いやすい大きさにサイズをできないと仮定するつもりですし、あなたには、いくつかのグリッドでそれを示さなければならない表示するには、かなり大規模なイメージなので おかげ

+0

これは愚かな質問かもしれませんが、元の画像がある場合はなぜ新しい画像を作成する必要がありますか?ユーザーが何らかの方法でそれを操作していますか? –

+0

@EbenRoux私は新しいイメージを作成していません。イメージをピースにロードし、個々のピースがクライアントブラウザにロードされるときに一緒に配置します。ユーザーがそれをすべて確認する必要がない場合、** 80 MegaBytes **以上を一度に読み込むことは本当にありません。 – Mayank

+0

わかりました。答えます。 –

答えて

3
+0

ありがとう、私はそれを見て、返信します。 – Mayank

+0

は、「Microsoft Deep Zoom Composer」のような大きな画像ファイルをサポートしていないため、画像ファイルをインポートすることができませんでした。 widowsのイメージプレビューとピクチャでファイルが正しく開きます。 – Mayank

0

を使用することができます。ユーザーがビューを移動するときにブロックを個別に読み込むGoogleマップと同じアイデアを使用できます。

3k x 3kピクセルでさえほとんどのスクリーン解像度よりも大きいので、そのビューをどのように構成するかはあなた次第です。さらに小さなブロックが必要な場合があります。

私はあなたが必要とするものを行うためにオフハンドを知っていませんが、あなた自身をローリングすることはあまり難しくありません。グリッドにdivのグリッドを配置したコンテナdivを使用して、内側に配置されたそれぞれの背景画像ビットをロードするか、divの固定数をグリッドとしてレンダリングし、「ビューポート」の移動に必要な背景画像をロードできます。

希望は意味があります。

+0

ありがとう、ええ、特定のアプリケーションのためのイメージの元の解像度を維持する必要があります。私はGoogleマップのようにすることも考えていましたが、実際にそれを実装する方法はわかりません。私は何かがあれば、棚のソリューションから何かを喜んで使用します。 – Mayank

0

ファイルを別のファイル形式(たとえばbmp)に変換する必要があると思いますので、必要なピクセルに簡単に移動したり、それらのピクセルで新しい画像を作成して送信したり、保存したり、 。大きな問題は、新しい画像サイズになります。

+0

Deep Zoom Composerは本当に簡単でした。私はMDZライブラリを使ってシステム全体を統合して自動化することができました。 – Mayank

関連する問題