2009-09-03 26 views
8

イメージ(.png形式)があり、このイメージをバイナリに変換します。イメージをバイナリに変換しますか?

これはどのようにC#を使用して行うことができますか?

+2

を解決することになると思うのコードの上でしょうか?たとえば白黒を意味しますか? – pavium

+1

もう少し説明できますか?イメージはすでにバイナリです。圧縮解除しますか?ピクセルにアクセスしますか? –

+0

Response.BinaryWrite()を使用して、画像のバイナリデータを画面に書き込む必要があります。 – Martijn

答えて

6

あなたは、ファイルを使用していますので: - :その後の内容を含んでいるでしょう

MemoryStream stream = new MemoryStream(); 
    image.Save(stream, ImageFormat.Png); 
    BinaryReader streamreader = new BinaryReader(stream); 

    byte[] data = streamreader.ReadBytes(stream.Length); 

データ

Response.ContentType = "image/png"; 
Response.WriteFile(physicalPathOfPngFile); 
+0

どのように変換するのですか?画像? –

20
byte[] b = File.ReadAllBytes(file); 

File.ReadAllBytes Method

、バイナリファイルを開きバイト 配列にファイルの 内容を読み取り、その後、ファイルを閉じます。

+1

レスポンスに送る前にその配列を処理する必要がある場合を除いて、ASP.NETはWriteFileを使ってそれを処理させます。 – AnthonyWJones

11

このお試しください:

Byte[] result 
    = (Byte[])new ImageConverter().ConvertTo(yourImage, typeof(Byte[])); 
3

をあなたが行うことができますが画像。

+0

イメージにはどのようなデータ型がありますか?私はWebフォームを使用しています... – Martijn

+0

System.Drawing.Image – Kazar

0

まず、画像をImageConverterクラスを使用してバイト配列に変換します。次に、あなたのPNG画像のmime typeを指定してください。ここで

は例です:

TypeConverter tc = TypeDescriptor.GetConverter(typeof(Byte[])); 
Response.ContentType = "image/png"; 
Response.BinaryWrite((Byte[])tc.ConvertTo(img,tc)); 
0
System.Drawing.Image image = System.Drawing.Image.FromFile("filename"); 
byte[] buffer; 
MemoryStream stream = new MemoryStream(); 
image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg); 

buffer = stream.ToArray(); // converted to byte array 
stream = new MemoryStream(); 
stream.Read(buffer, 0, buffer.Length); 
stream.Seek(0, SeekOrigin.Begin); 
System.Drawing.Image img = System.Drawing.Image.FromStream(stream); 
+0

はい、ありがとうございます。修正されました! –

0
public static byte[] ImageToBinary(string imagePath) 
    { 
     FileStream fS = new FileStream(imagePath, FileMode.Open, FileAccess.Read); 
     byte[] b = new byte[fS.Length]; 
     fS.Read(b, 0, (int)fS.Length); 
     fS.Close(); 
     return b; 
    } 

はちょうど私があなたの問題は、あなたが 'バイナリに変換する' とは何を意味しています

0
using System.IO; 

FileStream fs=new FileStream(Path, FileMode.Open, FileAccess.Read); //Path is image location 
Byte[] bindata= new byte[Convert.ToInt32(fs.Length)]; 
fs.Read(bindata, 0, Convert.ToInt32(fs.Length)); 
関連する問題