C # wpf 애플리케이션을 사용하여 이미지를 스트리밍하는 방법

상공 회의소
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Web; 
using System.IO;

namespace WpfApp
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
        public MainWindow(Stream stream)
        {
            InitializeComponent();
            String path = @"C:\Users\Public\Pictures\Sample Pictures\Jellyfish.jpg";
            var image = new BitmapImage();
            try
            {
                image.BeginInit();
                image.StreamSource = stream;
                image.EndInit();
                using (Stream bmpStream = System.IO.File.Open(path,System.IO.FileMode.Open))
                {
                    Image im = Image.FromStream(bmpStream);
                    //Bitmap img = (Bitmap)Image.FromFile("aa.gif", true);
                    //var im = ImageFromStream(bmpStream);
                    grid1.Background = new ImageBrush(new BitmapImage(new Uri(@"im")));
                }
                // return image;
            }

            catch (Exception a)
            {
                // return image;
            }
        }
        public void Window_Loaded(object sender, RoutedEventArgs e)
        {


        }


     }

}

위 코드를 사용하여 jpg 이미지를 비트 맵으로 스트리밍하고 C #을 사용하여 그리드로 설정했지만 Image im = Image.FromStream(bmpStream);오류가 표시됩니다. 누군가 jpg 이미지를 비트 맵으로 스트리밍하고 그리드로 설정하는 방법을 안내해 주시겠습니까?

Carsten

WPF가 이미지를 처리하고 표시하는 방식은 WinForms가 수행 한 방식과 약간 다릅니다. 대부분의 이미지 표시 "사물"은 a가 필요하며 ImageSource사용할 올바른 것을 검색해야합니다. 이 경우 BitmapImage- 를 사용할 수 있어야 하지만 마지막으로 확인했을 때 바이트 스트림의 내용을 올바르게 표시하려면 좀 더주의가 필요합니다.

이 스 니펫은이 작업을 올바르게 수행하는 방법을 보여줍니다 BitmapImage.

private static BitmapImage LoadImage(Stream stream)
{
    // assumes that the streams position is at the beginning
    // for example if you use a memory stream you might need to point it to 0 first
    var image = new BitmapImage();

    image.BeginInit();
    image.CacheOption = BitmapCacheOption.OnLoad;
    image.StreamSource = stream;
    image.EndInit();

    image.Freeze();
    return image;
}

보시다시피 이미지가로드 되 자마자 스트림을 사용하도록 이미지에 지시해야합니다 (또는 ObjectDisposedExceptions.

반환 된 객체를 이미지의 소스 속성으로 사용할 수 있습니다.

그래서 나는 당신이 찾고있는 것이 다음과 같다고 생각합니다.

public MainWindow(Stream stream)
{
    InitializeComponent();
    grid1.Background = new ImageBrush(LoadImage(stream));
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Azure App Service에 대한 액세스 권한을 얻기 위해 AAD B2C를 사용하여 WPF 애플리케이션을 인증하는 방법

Windows Installer 기술을 사용하여 배포 된 WPF 애플리케이션을 업데이트하는 방법

wpf 애플리케이션에서 json 응답을 사용하는 방법

WPF 애플리케이션에서 이미지 리소스에 대한 경로를 지정하는 방법

Selenium Webdriver 및 C #을 사용하여 Chrome 애플리케이션 인증 경고를 처리하는 방법

Docker를 사용하여 .net C # WPF 애플리케이션 컨테이너화

WPF 애플리케이션에 ScrollViewer를 추가하는 방법

WPF에서 애플리케이션 테마 이름을 저장하는 방법

C #의 콘솔 애플리케이션에서 웹 애플리케이션을 실행하는 방법

C # mvc 애플리케이션 용 Dockerfile을 만드는 방법

C # mvc 애플리케이션 용 Dockerfile을 만드는 방법

WPF 애플리케이션에서 Powershell 스크립트 실행과 함께 BusyIndicator를 사용하는 방법

C ++ / winrt UWP 애플리케이션에서 SVG 이미지를 사용하는 방법은 무엇입니까?

WPF 애플리케이션에서 배경 이미지를 설정하고 배치하는 방법

Google 어시스턴트를 사용하여 내 애플리케이션을 트리거하는 방법

log4net 구성을 위해 WPF 애플리케이션에서 App.config를 사용하는 방법

Roku 애플리케이션을 테스트하는 방법

Spark 스트리밍 애플리케이션에서 DynamoDB Stream을 처리하는 방법

Docker를 사용하여 애플리케이션을 배포하는 방법

WCF 서비스를 사용하는 WPF 애플리케이션에서 LDAP를 통합하는 방법

Kafka 클러스터에 Kafka 스트리밍 애플리케이션을 배포하는 방법

SQLPLUS를 사용하여 APEX 애플리케이션을 가져 오는 방법

WPF 창에서 DirectX12 애플리케이션을 호스팅하는 방법이 있습니까?

IDE에서 스트리밍 애플리케이션을 실행 / 디버그하는 방법

JMXConsole을 Spark 스트리밍 애플리케이션에 원격으로 연결하는 방법

Android Studio를 사용하여 Android 애플리케이션을 테스트하는 방법은 무엇입니까?

C # 웹 애플리케이션을 사용하여 JWT 토큰 URL \ login \ login.php? token = jwt.goes.here를 소비하고 리디렉션하는 방법

MVC 또는 C # .NET 애플리케이션을 사용하여 Azure AD 애플리케이션의 requiredResourceAccess 편집

navigateUp을 사용하여 애플리케이션을 닫는 방법

TOP 리스트

  1. 1

    셀레늄의 모델 대화 상자에서 텍스트를 추출하는 방법은 무엇입니까?

  2. 2

    Blazor 0.9.0 및 ASP.NET Core 3 미리보기 4를 사용한 JWT 인증

  3. 3

    openCV python을 사용하여 텍스트 문서에서 워터 마크를 제거하는 방법은 무엇입니까?

  4. 4

    C # 16 진수 값 0x12는 잘못된 문자입니다.

  5. 5

    Excel : 합계가 N보다 크거나 같은 상위 값 찾기

  6. 6

    오류 : MSB4803 : MSBuild의 .NET Core 버전에서 "ResolveComReference"작업이 지원되지 않습니다.

  7. 7

    R에서 Excel로 내보낼 때 CET / CEST 시간 이동이 삭제됨

  8. 8

    node.js + postgres : "$ 1"또는 그 근처에서 구문 오류

  9. 9

    확대 후 하이 차트에서 Y 축이 잘못 정렬 됨

  10. 10

    EPPlus에서 행 높이를 설정할 때 이상한 동작

  11. 11

    Ionic 2 로더가 적시에 표시되지 않음

  12. 12

    MS Access 부분 일치 2 테이블

  13. 13

    EPPlus에서 병합 된 셀의 행 높이 자동 맞춤

  14. 14

    ExecuteNonQuery- 연결 속성이 초기화되지 않았습니다.

  15. 15

    ResponseEntity를 사용하고 InputStream이 닫히는 지 확인하는 적절한 스트리밍 방법

  16. 16

    PrematureCloseException : 연결이 너무 일찍 닫혔습니다.

  17. 17

    오류 : "const wchar_t *"유형의 인수가 "WCHAR *"유형의 매개 변수와 호환되지 않습니다.

  18. 18

    Java에서 이미지를 2 색으로 변환

  19. 19

    overflow-y를 사용할 때 스크롤 버벅 거림 줄이기 : scroll;

  20. 20

    Java에서 Apache POI를 사용하여 테이블 크기 및 간격을 단어로 설정하는 방법

  21. 21

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

뜨겁다태그

보관