WPF 클 라 이언 트 가 고 화질 이미지 카드 와 미리 보기 그림 을 읽 는 해결 방법 에 대한 상세 한 설명 을 깊이 분석 하 다.

Ftp 에 올 라 온 사진 은 한 장 에 약 2M 의 고 화질 사진 이 올 라 왔 다.전통 적 인 BitmapImage 클래스 를 사용 하고 Source 속성 을 연결 하 는 방법 을 사용 하면 첫 번 째 로 카드 를 비교 하 는 컴퓨터 도 있 습 니 다.컴퓨터 한 장 에 10 초,큰 데이트 카드 4 장 에 40 초 입 니 다.그래서 저 는 먼저 다른 단계 로 그림 을 다운로드 하고 downloadFileStream 대상 을 받 은 다음 에 BitmapImage 류 에 연결 합 니 다.예 를 들 어 System.Windows.Control.Image photo=new Image{    Width = 100,    Height = 100,    Margin = new Thickness(2),    Stretch = Stretch.Uniform};BitmapImage bitmap = new BitmapImage();bitmap.BeginInit();bitmap.StreamSource = downloadFileStream;bitmap.EndInit();photo.Source = bitmap;ListBoxItem lbi = new ListBoxItem(){    DataContext = pvo,    Content = photo};this.lbPhotoes.Items.Add(lbi);bitmap 의 StreamSource 가 비교적 커서 lbi 대상 이 비교적 크기 때문에 lbPhotes.Items.Add 방법 은 두 장의 그림 을 추가 한 후 약 30 초 동안 걸 립 니 다.그래서 비트 맵 이미지 의 대상 을 작 게 만 들 기 위해 미리 보기 그림 을 사용 하려 고 합 니 다.여기 서 미리 보기 그림 을 사용 하 는 것 은 클 라 이언 트 가 그림 크기 가 대체적으로(100,100)여야 하기 때 문 입 니 다.전체 코드 는 다음 과 같 습 니 다:System.Windows.Control.Image photo=new Image{    Width = 100,    Height = 100,    Margin = new Thickness(2),    Stretch = Stretch.Uniform};using (System.Drawing.Image drawingImage = System.Drawing.Image.FromStream(downloadFileStream)){using (System.Drawing.Image thumbImage =drawingImage.GetThumbnailImage(100, 100, () => { return true; }, IntPtr.Zero))    {        MemoryStream ms = new MemoryStream();        thumbImage.Save(ms, System.Drawing.Imaging.ImageFormat.Png);        BitmapFrame bf = BitmapFrame.Create(ms);        photo.Source = bf;    }}ListBoxItem lbi = new ListBoxItem(){    DataContext = pvo,    Content = photo};this.lbPhotoes.Items.Add(lbi);여기 서 System.drawing.dll 을 참조 하 십시오.System.drawing.Image 류 의 GetThumbnailImage 방법 으로 thumbImage 를 가 져 옵 니 다.이 어 Memory Stream 을 사용 하여 미리 보기 그림 의 stream 을 저장 하고 미리 보기 그림 의 stream 으로 그림 을 만 듭 니 다. 마지막 으로 한 마디 하 자 면 이 문 제 를 해 결 했 지만 매번 고 화질 그림 을 다운로드 하여 미리 보기 그림 을 만들어 야 한다.이것 은 시간 이 많이 걸 리 기 때문에 그림 을 올 릴 때 미리 보기 그림 을 만들어 미리 보기 그림 을 저장 해 야 한다.랜 에서 네트워크 속도 가 비교적 빠 르 기 때문에 이런 방식 도 기본적으로 요 구 를 만족 시 킬 수 있다.

좋은 웹페이지 즐겨찾기