2011-09-29 24 views
0

私はモバイルアプリケーションを開発しようとしていますが、画像をテキストファイルに変換してから後で再作成するのが最も簡単ですメモリはテキスト。問題の画像は16色ほどしか含まれないので、うまくいくはずです。画像圧縮アルゴリズム - 画像を四角で色で区切る

基本的には、このソリューションを強要すると、各個人のピクセルカラーデータをファイルに保存する必要があります。しかし、これは巨大なファイルになります。 画像の巨大な部分が同じ色からなり、その領域を小さな正方形と長方形に分割し、その座標とサイズをファイルに保存すると、より良い方法があることはわかっています。

次に例を示します。イメージは単なる黒/白であるはずです。大きなカラーボックスは、出力されるテキストファイルの理論上の「データポイント」を表します。これらのボックスは、その起源、サイズ、そしてどのような色にすべきかを本当に述べるでしょう。

たとえば、トップボックスの原点は0,0、サイズは359,48であり、黒色を表します。 テキストファイルに保存すると、データは0,0,359,48,0になります。

sample algorithm output

これは、アルゴリズムのどのようなことでしょうか?

注:使用しているSDKは、ピクセルの色をX、Y座標から戻すことはできません。しかし、テキストファイルから外部情報をプログラムに読み込んで、それを操作することができます。テキストファイルにエクスポートする必要があるこのデータは、X、Y座標からピクセルの色を取得する機能を持つ別のユーティリティからのものです。

EDITは:絵 EDIT2を追加しました:追加された制約

+4

PNGまたはGIF?画像圧縮を再作成する必要はありません:) –

+2

イメージ(またはその部分)をプレーンテキストとして保存する理由を詳しく説明できますか?代わりにバイナリ表現を使用できませんか?また、画像に、通常、同じ色のピクセルが連続して多数連続している場合は、いわゆるランレングスエンコーディング(RLE)を使用することができます。代わりに、Lempel-Ziv-something圧縮アルゴリズムの1つを使用することもできます(LZ77、LZ78、LZW)。 –

+0

問題は画像そのものではなく、私が使用しているSDKです。 SDK内の画像自体から特定のピクセルの色を取得する方法はありません。したがって、私は上記のデータをテキストファイルに変換するソリューションを考え出す必要があります。これをアプリケーションにロードして操作することができます。 –

答えて

1

イメージ(またはその部分)をプレーンテキストとして保存する理由を詳しく説明できますか?代わりにバイナリ表現を使用できませんか?また、画像に、通常、同じ色のピクセルが連続して多数連続している場合は、いわゆるランレングスエンコーディング(RLE)を使用することができます。代わりに、Lempel-Ziv-something圧縮アルゴリズムの1つを使用することもできます(LZ77、LZ78、LZW)。

0

を圧縮形式(例えばJPEG、PNG、GIFなど)に画像を圧縮して、.txtファイルまたは何として保存します。イメージを再作成するには、特定のニーズに合ったライブラリ関数を使用して、プログラムにファイルを読み込みます。

.txtファイルにテキストの意味が必要な場合は、何らかの問題が発生する可能性があります。

0

csには、recursivleyに対する空間インデックスのようなアルゴリズムがあり、プレーンを4つのタイルに細分します。セルのサイズが同じ場合は、四分木のように見えます。プレーンを(色の)パターンに細分する場合、このタイリングアイデアを使用してセルのサイズを動的に変更することができます。見るのが良いスタートはzカーブかヒルベルトカーブです。