1

イメージはどのようにバイト配列に内部的に保存されますか? Visual Studio でデバッグしているときに、ASCII コードが表示されます (推測)。でも誰か説明してください。

たとえば、テーブルに画像 (BLOB) が格納されているとします。そのBLOBをコード(.net内)のdataTableにフェッチすると、

byte[] image = new image();
DataTable dt = new DataTable();
dt.Columns.Add("Image", typeof(byte[]));
\\Consider the BLOB from the DB is fetched into DataTable Image column.
image = dt[Row]["Image"];

では、BLOB は byte[] イメージにどのように内部的に格納されるのでしょうか?

インターネットで検索しましたが、何も見つかりませんでした。

4

3 に答える 3

3

画像は、それを表現するために使用される基本的な形式 (色データ、レイヤー、寸法など) に従って構造化された一連のバイトにすぎません。デバッグ中に表示されるバイトの意味は、画像のネイティブ形式に完全に依存します。 PNG、TIFF、JPEG、BMP などの画像。

それがあなたが探していたものであることを願っています。より具体的なことが必要な場合は、元の投稿を修正してください。誰かが詳細を教えてくれるかもしれません。

于 2012-08-28T20:50:12.340 に答える
2

何が明確でないのかわかりませんが、このコードが役立つかもしれません

MemoryStream m = new MemoryStream();

Image img = Image.FromFile(file);
img.Save(m, System.Drawing.Imaging.ImageFormat.Jpeg);

byte[] bytes = m.ToArray();

m.Position = 0;
Image img2 = Image.FromStream(m);
于 2012-08-28T20:54:40.803 に答える
1

画像は通常、ファイル内の特定のアルゴリズムによってエンコードされた色の配列です。私はGIF画像形式に精通しています。下の図を見て、赤色の「V」が白色の背景に格納されている例を確認してください。この例の画像の幅は 7 ピクセル、高さは 4 ピクセルです。すべての画像には、画像で使用される色の数を示すカラー テーブルが必ずあります。R でマークされたピクセルは赤色で、w でマークされたピクセルは白色です。

RwwwwwR
wRwwwRw
wwRwRww
wwwRwww

各ピクセルは 32 ビット幅の整数で、r(赤)g(緑)b(青) コンポーネントと透明度コンポーネントを示します。

于 2012-08-28T20:52:12.950 に答える