.net 2.0 を使用してバイト配列形式の BITMAP を JPEG 形式に変換するにはどうすればよいですか?
50384 次
3 に答える
44
どのタイプのbyte[]
ことですか?生のファイルストリームデータ? System.Drawing.dll
その場合、(クライアントアプリケーションで使用する)のようなものはどうですか:
using(Image img = Image.FromFile("foo.bmp"))
{
img.Save("foo.jpg", ImageFormat.Jpeg);
}
または、本当に がある場合はFromStream
a とともに使用します。new MemoryStream(arr)
byte[]
byte[] raw = ...todo // File.ReadAllBytes("foo.bmp");
using(Image img = Image.FromStream(new MemoryStream(raw)))
{
img.Save("foo.jpg", ImageFormat.Jpeg);
}
于 2009-01-19T11:56:35.663 に答える
3
生のピクセル データの単なるバッファーであり、完全な画像ファイル (JPEG などのヘッダーなどを含む) ではない場合は、Image.FromStream を使用できません。
あなたが探しているのは System.Drawing.Bitmap.LockBits で、System.Drawing.Imaging.ImageData; を返していると思います。これにより、メモリへのポインターを使用して、画像のピクセルの読み取りと書き込みにアクセスできます。
于 2009-01-19T12:08:58.523 に答える
-4
public static Bitmap BytesToBitmap(byte[] byteArray)
{
using (MemoryStream ms = new MemoryStream(byteArray))
{
Bitmap img = (Bitmap)Image.FromStream(ms);
return img;
}
}
于 2012-04-12T13:50:45.850 に答える