15

バイトを画像に変換していますが、エラーが発生します

パラメータが無効です

コードを貼り付けています。親切にコードをチェックして、私が正しいか間違っているかを提案してください。

Image arr1 = byteArrayToImage(Bytess);

これが関数です。

public static Image byteArrayToImage(byte[] byteArrayIn)
{
        if (null == byteArrayIn || byteArrayIn.Length == 0)
            return null;

        MemoryStream ms = new MemoryStream(byteArrayIn);
        try
          {
            Process currentProcess1 = Process.GetCurrentProcess();
            Image returnImage = Image.FromStream(ms);
            return returnImage;
          }
        catch (Exception ex)
          {
            MessageBox.Show(ex.Message);
          }
    }

多くのテクニックとソリューションを適用しましたが、うまくいきませんでした

あなたの答えをいただければ幸いです。

ありがとう

4

6 に答える 6

11

これを試して

public Image byteArrayToImage(byte[] byteArrayIn)
{
    System.Drawing.ImageConverter converter = new System.Drawing.ImageConverter();
    Image img = (Image)converter.ConvertFrom(byteArrayIn);

    return img;
}
于 2013-07-16T04:35:55.403 に答える
7

多くのことを試した後、もう少し制御できる方法を見つけました。この例では、ピクセル形式を指定し、バイトをビットマップにコピーできます。

byte[] buffer = GetImageBytes();
var bitmap = new Bitmap(width, height, PixelFormat.Format32bppArgb);
var bitmap_data = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb);
Marshal.Copy(buffer, 0, bitmap_data.Scan0, buffer.Length);
bitmap.UnlockBits(bitmap_data);
var result = bitmap as Image;
于 2015-06-04T14:51:19.657 に答える
-1

これを試して、

public Image byteArrayToImage(byte[] byteArrayIn)
{
     Image returnImage = null;
     using (MemoryStream ms = new MemoryStream(byteArrayIn))    
     {   
         returnImage = Image.FromStream(ms);     
     }
     return returnImage;
}
于 2013-07-16T10:30:43.630 に答える
-1
cmd.CommandText="SELECT * FROM `form_backimg` WHERE ACTIVE=1";

MySqlDataReader reader6= cmd.ExecuteReader();

if(reader6.Read())
{
   code4 = (byte[])reader6["BACK_IMG"];   //BLOB FIELD NAME BACK_IMG
}
reader6.Close();

MemoryStream stream = new MemoryStream(code4);   //code4 is a public byte[] defined on top                             
pictureBox3.Image = Image.FromStream(stream);
于 2017-05-07T18:06:42.680 に答える