TcpClient と NetworkStream を使用して、ネットワーク経由で画像を送信したいと考えています。
画像の種類は (System.Windows.Controls.Image)
どうすればイメージをバイトに変換できますか?
ありがとう。
TcpClient と NetworkStream を使用して、ネットワーク経由で画像を送信したいと考えています。
画像の種類は (System.Windows.Controls.Image)
どうすればイメージをバイトに変換できますか?
ありがとう。
ネットワーク経由で画像を送信するには、画像をシリアル化する必要があります。
Image im = Image.FromFile(@"C:\hello.jpg");
MemoryStream ms = new MemoryStream();
im.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] Barray = ms.ToArray();
string str = string.Empty;
foreach (byte b in oImage)
{
str += b.ToString();
}
JPEGが原因で多くの問題が発生したため、画像をPNG形式に変換することをお勧めします。以下のコードを試してください
byte[] b1=null;
ByteArrayOutputStream baos=new ByteArrayOutputStream();
ImageIO.write(img, "png", baos);
b1=baos.toByteArray();
以下のコードは、ユーザーが画像をアップロードできるようにする場合に役立ちます。
FileStream fs;
fs = new FileStream(OpenImage.FileName, FileMode.Open, FileAccess.Read);
byte[] picByte;
picByte = new byte[Convert.ToInt32(fs.Length)];
fs.Read(picByte, 0, Convert.ToInt32(fs.Length));
fs.Close();
ここで、OpenImage は OpenFileDialog コントロールです。