デスクトップの画像をキャプチャして圧縮し、受信者に送信するリモートデスクトップ共有アプリケーションを作成しています。画像を圧縮するには、画像を byte[] に変換する必要があります。
現在、私はこれを使用しています:
public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
return ms.ToArray();
}
public Image byteArrayToImage(byte[] byteArrayIn)
{
MemoryStream ms = new MemoryStream(byteArrayIn);
Image returnImage = Image.FromStream(ms);
return returnImage;
}
しかし、私はそれを ImageFormat で保存する必要があり、リソースを使い果たし (スローダウン)、異なる圧縮結果を生成する可能性があるため、好きではありません.Marshal.Copy と memcpy を使用して読みましたが、できませんそれらを理解してください。
この目標を達成するための他の方法はありますか?