バイト[]をC#のイメージに変換しようとしています。私はこの質問が別のフォーラムで尋ねられたことを知っています。しかし、彼らに与えられた答えのどれも私を助けませんでした。いくつかのコンテキスト= を与えるには、画像を開き、それをバイト[]に変換します。私はバイト[]を暗号化します。結局私はまだバイト[]を持っていますが、それは修正されました。もう一度これを表示したいと思います。バイト[]自体は6559バイトで構成されています。私は次のようにして変換しようとしています。配列を変更した後、バイト配列をC#のImageに変換します。
public Image byteArrayToImage(byte[] byteArrayIn)
{
MemoryStream ms = new MemoryStream(byteArrayIn);
Image returnImage = Image.FromStream(ms);
return returnImage;
}
このエラーが発生します。パラメータが無効です。
バイト配列
List<byte> encryptedText = new List<byte>();
pbEncrypted.Image = iConverter.byteArrayToImage(encryptedText.ToArray())
リストに.toArray()を使用して構成されています。
誰でも手伝ってもらえますか?私は何らかの形式や何かを忘れていますか?
画像に変換する必要があるバイト:
private void executeAlgoritm(byte[] plainText)
{
// Empty list of bytes
List<byte> encryptedText = new List<byte>();
// loop over all the bytes in the original byte array gotten from the image
foreach (byte value in plainText)
{
// convert it to a bitarray
BitArray myBits = new BitArray(8); //define the size
for (byte x = 0; x < myBits.Count; x++)
{
myBits[x] = (((value >> x) & 0x01) == 0x01) ? true : false;
}
// encrypt the bitarray and return a byte
byte bcipher = ConvertToByte(sdes.IPInvers(sdes.FK(sdes.Shift(sdes.FK(sdes.IP(myBits),keygen.P8(keygen.shift(keygen.P10(txtKey.Text))))),keygen.P8(keygen.shift(keygen.shift(keygen.shift(keygen.P10(txtKey.Text))))))));
// add the byte to the list
encryptedText.Add(bcipher);
}
// show the image by converting the list to an array and the array to an image
pbEncrypted.Image = iConverter.byteArrayToImage(encryptedText.ToArray());
}
バイト[]を復号するのを忘れましたか?画像をバイト[]、暗号化/復号/変更に変換するコードコードをすべて投稿できますか?あなたが掲示したコードは何が間違っているかを判断するのに十分ではありません。 – cdhowie
暗号化された画像を表示する必要があるので、復号化する必要はありません。しかし、暗号化はバイト単位でビットをスワップするだけです(sDES)。私はまだ最後にバイト[]があり、この暗号化されたイメージを表示することが可能でなければなりません。 – Ojtwist
最初に 'byte []'に変換しましたか? –