Cách tốt nhất để truyền hình ảnh trong dịch vụ WCF là gì và sau khi truyền, hãy hiển thị hình ảnh đó trong dữ liệu thống kê WPF?Truyền hình ảnh qua WCF và hiển thị chúng trong dữ liệu WPF
Trả lời
Tôi không nói rằng đây là chỉ hoặc giải pháp tốt nhất, nhưng chúng tôi có nó làm việc như thế này:
Những gì bạn cần làm là:
Tạo một phương pháp WCF rằng sẽ quay trở lại hình ảnh bởi một số id hoặc bất cứ điều gì. Nó sẽ trả về mảng byte (byte []):
public byte[] GetImage(int id)
{
// put your logic of retrieving image on the server side here
}
Trong lớp dữ liệu của bạn (đối tượng hiển thị trong lưới) tạo ra một hình ảnh bất động sản, getter của nó nên gọi phương thức WCF và chuyển đổi mảng byte để một BitmapImage:
public BitmapImage Image
{
get
{
// here - connection is your wcf connection interface
// this.ImageId is id of the image. This parameter can be basically anything
byte[] imageData = connection.GetImage(this.ImageId);
// Load the bitmap from the received byte[] array
using (System.IO.MemoryStream stream = new System.IO.MemoryStream(imageData, 0, imageData.Length, false, true))
{
BitmapImage bmp = new BitmapImage();
bmp.BeginInit();
bmp.StreamSource = stream;
try
{
bmp.EndInit();
bmp.Freeze(); // helps for performance
return bmp;
}
catch (Exception ex)
{
// Handle exceptions here
}
return null; // return nothing (or some default image) if request fails
}
}
}
Trong mẫu của bạn tế bào (hoặc bất cứ nơi nào) đặt dấu kiểm soát hình ảnh và liên kết hữu Nguồn của nó đối với tài sản hình ảnh được tạo ở trên:
<DataTemplate> <!-- Can be a ControlTemplate as well, depends on where and how you use it -->
<Image
Source={Binding Image, IsAsync=true}
/>
</DataTemplate>
cách đơn giản nhất để không làm cho giao diện người dùng miễn phí ze khi truy xuất hình ảnh sẽ thiết lập thuộc tính IsAsync thành false như tôi đã làm. Nhưng có rất nhiều thứ để cải thiện. Ví dụ. bạn có thể hiển thị một số hoạt ảnh đang tải trong khi Hình ảnh đang được tải.
Hiển thị nội dung nào đó trong khi tải nội dung khác có thể được thực hiện bằng PriorityBinding (bạn có thể đọc về nó tại đây: http://msdn.microsoft.com/en-us/library/ms753174.aspx).
làm cách nào để hiển thị hình ảnh động khi đang tải hình ảnh? –
Tôi đã cập nhật câu trả lời – arconaut
Đây chỉ là câu trả lời hay nếu hình ảnh nhỏ. Tùy thuộc vào kích thước của hình ảnh Nếu chúng lớn hoặc nếu có một lượng lớn yêu cầu, giải pháp này sẽ không hoạt động –
Bạn có thể tải hình ảnh WPF từ luồng không? Nếu có, thì bạn có thể viết dịch vụ WCF để trả về kiểu System.IO.Stream.
Tôi không biết đó là lý do tại sao tôi yêu cầu –
Bạn có thể gửi luồng dưới dạng một phần của thư, miễn là luồng được đánh dấu là phần duy nhất của Nội dung của tin nhắn Tất cả các trường khác của tin nhắn sẽ phải đi đến tiêu đề – SaguiItay
- 1. Hiển thị hình ảnh trong TextBlock (WPF)
- 2. Hiển thị BLOB (hình ảnh) qua JSP
- 3. hiển thị và lưu hình ảnh thông qua Blender python
- 4. Hiển thị bản vẽ. Hình ảnh trong WPF
- 5. hiển thị ảnh động gif trong WPF
- 6. Hiển thị bảng dữ liệu trong ứng dụng C# WPF
- 7. Cách lấy hình ảnh từ cơ sở dữ liệu MySQL và hiển thị trong thẻ html
- 8. Lỗi hiển thị tiêu đề hàng dữ liệu WPF DataGrid
- 9. Hình ảnh dữ liệu WPF Image.Source trong MVVM
- 10. Hiển thị hình ảnh WPF thành tệp WMF/EMF
- 11. Hiển thị nguồn cấp dữ liệu webcam trong cv :: Định dạng Mat trong hình ảnh
- 12. Hiển thị hình ảnh jpg trong python
- 13. hình ảnh hiển thị khi di chuột qua cửa sổ?
- 14. Hiển thị màn hình "Chờ" trong WPF
- 15. Hiển thị hình ảnh trong cơ sở dữ liệu ở Django
- 16. Làm thế nào để hiển thị hình ảnh từ cơ sở dữ liệu trong CodeIgniter?
- 17. Hiển thị hình ảnh tải với getJSON
- 18. hiển thị hình ảnh lớn trong Android
- 19. Hiển thị hình ảnh dưới dạng luồng dữ liệu trong trình duyệt Android
- 20. Hiển thị tooltip trên di chuyển div qua hình ảnh
- 21. Hiển thị hình ảnh trong nguồn cấp dữ liệu nguyên tử
- 22. 'dữ liệu: hình ảnh/jpg; base64' và xem trước hình ảnh jQuery trong Internet Explorer
- 23. Quản trị Django và hiển thị hình ảnh thu nhỏ
- 24. cách hiển thị và đóng hình ảnh trong python?
- 25. Iphone: Cách hiển thị hình ảnh thư mục tài liệu trong chế độ xem hình ảnh?
- 26. Hiển thị hình ảnh trong Iframe
- 27. Android: Hiển thị hình ảnh trong Webview
- 28. Hiển thị hình ảnh trong Leaflet Popup
- 29. Hiển thị hình ảnh trong gsp (grails)
- 30. Làm cách nào để hiển thị hình ảnh mà chúng tôi nhận được thông qua cuộc gọi Ajax?
Hình ảnh bạn đang xử lý trung bình là bao nhiêu? Bạn cần phải xử lý bao nhiêu trong một cuộc gọi? Có một số giải pháp tốt cho câu hỏi của bạn, nhưng nó thực sự phụ thuộc vào lượng thông tin mà bạn phải đối phó với mỗi cuộc gọi. Trả về nó như là một mảng byte chỉ là một giải pháp tốt nếu hình ảnh của bạn sẽ tương đối nhỏ và bạn không phải trả lại một số lượng lớn trong một thời điểm (tôi hỏi vì bạn đang đặt nó trong một DataGrid, vì vậy tôi –