Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 17804|Απάντηση: 0

[WPF] Λειτουργία αρχείων εικόνας, byte[] και BitmapImage στο WPF

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 16/12/2015 5:00:21 μ.μ. | | |
  1. public MainWindow()
  2.         {
  3.             InitializeComponent();
  4.             byte[] b = GetPictureData(@"F:\WPF\TestSolution\TestReatByteFromDB\Images\123.png");
  5.             BitmapImage myimg = ByteArrayToBitmapImage(b);
  6.             this.testImg.Source = myimg;
  7.         }

  8.         public byte[] GetPictureData(string imagepath)
  9.         {
  10.             /**/
  11.             ////根据图片文件的路径使用文件流打开,并保存为byte[]
  12.             FileStream fs = new FileStream(imagepath, FileMode.Open);//可以是其他重载方法
  13.             byte[] byData = new byte[fs.Length];
  14.             fs.Read(byData, 0, byData.Length);
  15.             fs.Close();
  16.             return byData;
  17.         }

  18.         public BitmapImage ByteArrayToBitmapImage(byte[] byteArray)
  19.         {
  20.             BitmapImage bmp = null;

  21.             try
  22.             {
  23.                 bmp = new BitmapImage();
  24.                 bmp.BeginInit();
  25.                 bmp.StreamSource = new MemoryStream(byteArray);
  26.                 bmp.EndInit();
  27.             }
  28.             catch
  29.             {
  30.                 bmp = null;
  31.             }

  32.             return bmp;
  33.         }

  34.         public byte[] BitmapImageToByteArray(BitmapImage bmp)
  35.         {
  36.             byte[] byteArray = null;

  37.             try
  38.             {
  39.                 Stream sMarket = bmp.StreamSource;

  40.                 if (sMarket != null && sMarket.Length > 0)
  41.                 {
  42.                     //很重要,因为Position经常位于Stream的末尾,导致下面读取到的长度为0。
  43.                     sMarket.Position = 0;

  44.                     using (BinaryReader br = new BinaryReader(sMarket))
  45.                     {
  46.                         byteArray = br.ReadBytes((int)sMarket.Length);
  47.                     }
  48.                 }
  49.             }
  50.             catch
  51.             {
  52.                 //other exception handling
  53.             }

  54.             return byteArray;
  55.         }
Αντιγραφή κώδικα






Προηγούμενος:Το WPF αλλάζει τα προεπιλεγμένα στοιχεία για το παράθυρο εκκίνησης
Επόμενος:Προσέξτε να γράψετε δοκιμάστε να πιάσετε έξω από το ενώ! και γράψτε επιστροφή σε λίγο!
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com