2012-04-26 29 views
10

Tôi đang cố gắng trích xuất một BitmapImage từ JPG. Đây là mã tôi có:C# Tải tập tin JPG, trích xuất BitmapImage

FileStream fIn = new FileStream(sourceFileName, FileMode.Open); // source JPG 
Bitmap dImg = new Bitmap(fIn); 
MemoryStream ms = new MemoryStream(); 
dImg.Save(ms, ImageFormat.Jpeg); 
image = new BitmapImage(); 
image.BeginInit(); 
image.StreamSource = new MemoryStream(ms.ToArray()); 
image.EndInit(); 
ms.Close(); 

hình ảnh trở lại với hình ảnh 0 × 0, điều này có nghĩa là nó không hoạt động. Làm thế nào để tôi làm điều này?

Trả lời

19

Hãy thử điều này:

public void Load(string fileName) 
{ 

    using(Stream BitmapStream = System.IO.File.Open(fileName,System.IO.FileMode.Open)) 
    { 
     Image img = Image.FromStream(BitmapStream); 

     mBitmap=new Bitmap(img); 
     //...do whatever 
    } 
} 

Hoặc bạn chỉ có thể làm được điều này (source):

Bitmap myBmp = Bitmap.FromFile("path here"); 
+0

tôi thấy sai lầm của tôi: Tôi cần phải sử dụng hình ảnh, không BitmapImage. Tôi biết nó không cần phải phức tạp! Đây là mã làm việc: Image image = Image.FromFile (sourceFileName, true); – IamIC

+0

Có bạn đi :) – Eugene

+1

Con trai này là phức tạp ban đầu! Hình ảnh, BitmapImage, ImageSource, JpegImageDecoder, v.v. – IamIC