私は、リモートセンシング画像処理と画像シーケンスループについて私のプロジェクトに取り組んできました。結果として得られる各画像(JPEGまたはPNG形式)は、約8000 * 4000ピクセルです。私たちのユーザーは通常、一度に関心領域に基づいて画像シーケンス(50以上の画像)をループしたいと考えています。そこで、ユーザの視覚化クライアントサイズに応じて、各画像から必要な視域を抽出しなければならない。たとえば、ユーザーの現在のクライアントビューが640 * 480の場合、現在のx(列)とy(行)座標に基づいて、元の各イメージから640 * 480データブロックのサイズを見つけて、クライアントビュー。ユーザーがマウスでドラッグして別の表示領域に移動すると、できるだけ早く各プログラムから領域データを再ロードする必要があります。大きなJPEG/PNG画像シーケンスループ
long ReadRectangle(long x0、long y0、long x1、long y1、char * RectData)などの組み込みのデータブロック読み取りルーチンはありません。 long ReadInaRectangle(long x0、long y0、短い幅、短い高さ、char * RectData);
組み込みのJPEGデコンプレッサには、この種の機能がありません。私は、JPEG2000形式には画像の特定領域を伸張するための規定があることを知っています。私はJEPGについて完全にはわかりません。
誰かがCreateFileMapping、MapViewOfFile、およびCreateDIBSectionを使用して、ビューにマップするファイルマッピングのバイト数をコミットすることをお勧めします。 * .raw、* .img、* .bmpなどの単純なフラットバイナリイメージフォーマットとは異なり、JPEGのBlobには画像データだけでなく、複雑なJPGヘッダも含まれます。したがって、JPEGファイルからデータビューのブロックをマップするのは簡単ではありません。
mnayの一般的な画像ビジュアライゼーション(Google Earthなど)やGISアプリケーション(WebGISなど)と同様に、画像タイリングや画像ピラミッド技術を使用してサブ画像を生成することをお勧めします。
どうすればこの問題を解決できますか?
ありがとうございました。
ゴールデン・リー
このリンクは質問に答えるかもしれませんが、回答の重要な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 – Stewbob
@Stewbob:答えはリンクの後ろではありません。答えは "gdライブラリでは簡単です"で、gbライブラリへのリンクが含まれています。 IMHO、これはOKです。 –