🙂 İNSANLARIN EN HAYIRLISI INSANLARA FAYDALI OLANDIR 🙂

Ramazan HABER / C# RMOS / dosya yüklemede bağımsız yapma dosya kullanıyor hatasının çözümü GDI hatası

1-) C# RMOS - dosya yüklemede bağımsız yapma dosya kullanıyor hatasının çözümü GDI+ hatası

 

SON YAPTIĞIM : using kullanırsan gdi+ hatası vermez. 21.01.2024

 

 SON YAPTIĞIM : resmi base64 e çevirip tekrardan image e çevirerek yaparsak GDI+ hatası vermez

 

 

byte[] imageBytes = File.ReadAllBytes(urunResimYol);

string base64 = Convert.ToBase64String(imageBytes);

 

pictureBoxUrunResim.Image = Base64ToImage(base64);

 

 

public static Image Base64ToImage(string base64String)

{

    byte[] imageBytes = Convert.FromBase64String(base64String);

    using (MemoryStream memoryStream = new MemoryStream(imageBytes))

    {

        Image image = Image.FromStream(memoryStream);

        return image;

    }

}

 

// bu şekilde yüklersen GDI+ hatası vermez

// A generic error occurred in GDI+

 

 

DİĞER

 

picturebox'a resmi bölye eklersen hata vermez

//    Bitmap   resim = new Bitmap(ByteToImage( System.Drawing.Image.FromFile(fullPath)));

//   pictureBoxOn.Image = resim ;

public static Bitmap ByteToImage(Image img)

        {

            ImageConverter converter = new ImageConverter();

            byte[] blob=(byte[])converter.ConvertTo(img, typeof(byte[]));

            MemoryStream mStream = new MemoryStream();

            byte[] pData = blob;

            mStream.Write(pData, 0, Convert.ToInt32(pData.Length));

            Bitmap bm = new Bitmap(mStream, false);

            mStream.Dispose();

            return bm;

        }

 

 

 

 

TÜM KODLAR

 

 

 //kullanımını sonradan yazdım düzeltilebilir

 Bitmap bmp = WaitForFile(dosyaYolu);

 pictureBoxOn.Image =bmp; // burasını sonradan yazdım

 

// asıl kod aşağıdakilerdir

  public Bitmap WaitForFile(string fullPath)

        {

            Bitmap resim = null;

            int i = 0;

            while (resim == null)

            {

                try

                {

                       resim = new Bitmap(ByteToImage( System.Drawing.Image.FromFile(fullPath)));

                }

                catch (Exception ex)

                {

                    Console.WriteLine("HATA ! " + ex.Message);

                    Thread.Sleep(500);

                    i++;

                    if (i == 5)

                    {

                        break;

                    }

                }

            }

 

            return resim;

        }

 

 

        public static Bitmap ByteToImage(System.Drawing.Image img)

        {

            ImageConverter converter = new ImageConverter();

            byte[] blob = (byte[])converter.ConvertTo(img, typeof(byte[]));

            MemoryStream mStream = new MemoryStream();

            byte[] pData = blob;

            mStream.Write(pData, 0, Convert.ToInt32(pData.Length));

            Bitmap bm = new Bitmap(mStream, false);

            mStream.Dispose();

            return bm;

        }

 

 

 

 2024 Ocak 21 Pazar
 639