none
영상에서 첫 프레임 이미지 가져오는 방법 RRS feed

  • 질문

  • 안녕하세요~^^

    앱의 저장소에 저장되어 있는 사진이나 비디오를 GridView 컨트롤을 사용해서 보여주려고 합니다

    일종의 비디오까지 지원되는 포토뷰어앱이라고 보시면 됩니다

    비디오의 경우 MediaElement 컨트롤을 사용해서 바인딩하면 영상관련 이미지만 보여주면 되는데

    동영상을 직접 로딩해서 보여주기 때문에 성능 저하가 발생할 것 같아서

    영상의 첫 프레임 썸네일 이미지를 미리 추출해서 저장해 놓았다가 MediaElement 컨트롤 대신

    Image 컨트롤을 사용해서 썸네일 이미지를 보여주고 아이템을 클릭했을 때 실제 영상을 불러와서 재생하려고 합니다

    그런데 이런 방식을 사용할 경우 영상의 첫 프레임 이미지를 가져와야 하는데 어떤 방법이 있을까요?

    <GridView.ItemTemplate>

        <DataTemplate>

            …

            <Grid>

                <Image Stretch="Fill" Width="200" Height="150">

                    <Image.Source>

                        <BitmapImage DecodePixelWidth="200" UriSource="{Binding ThumbnailPath}"/>

                    </Image.Source>

                 </Image>

                 <MediaElement Source="{Binding MediaPath}" Stretch="Fill"/> ß 사용안함

            </Grid>

        </DataTemplate>

    </GridView.ItemTemplate>

    

    답변 부탁드립니다

    수고하세요~

    2014년 2월 19일 수요일 오전 7:32

답변

  • StorageFile.GetThumbnailAsync 메서드를 이용하여 썸네일은 뽑아낼 수 있겠습니다만, 첫 프레임을 빼내지는 않을 겁니다.

    저도 저 메서드를 이용할 때 프레임을 선택하는 구체적인 메커니즘은 모르겠습니다만 대표 프레임을 선택할 때 그것이 굳이 첫 프레임일 필요는 없을 것 같네요. 왜냐하면 첫 프레임을 따고 싶다는 분들에게 드리는 항상 드리는 얘기는 첫 프레임에는 의미 없는 장면이 들어있을 가능성이 많기 때문에 첫 프레임을 선택할 경우 버려지는 장면이 들어있을 가능성이 많다는 것이죠. 예를 들면 페이드 인 들어가기 직전의 검은색만 채워진 장면이라던가 등등.

    어쨌든, 썸네일을 사용하실 경우 썸네일('미리 보기'라고 번역이 되어있네요)에 대한 가이드라인도 한번 참고해보시기 바랍니다.

    • 답변으로 표시됨 Squirrel Lee 2014년 2월 20일 목요일 오전 5:28
    2014년 2월 19일 수요일 오전 9:42

모든 응답

  • StorageFile.GetThumbnailAsync 메서드를 이용하여 썸네일은 뽑아낼 수 있겠습니다만, 첫 프레임을 빼내지는 않을 겁니다.

    저도 저 메서드를 이용할 때 프레임을 선택하는 구체적인 메커니즘은 모르겠습니다만 대표 프레임을 선택할 때 그것이 굳이 첫 프레임일 필요는 없을 것 같네요. 왜냐하면 첫 프레임을 따고 싶다는 분들에게 드리는 항상 드리는 얘기는 첫 프레임에는 의미 없는 장면이 들어있을 가능성이 많기 때문에 첫 프레임을 선택할 경우 버려지는 장면이 들어있을 가능성이 많다는 것이죠. 예를 들면 페이드 인 들어가기 직전의 검은색만 채워진 장면이라던가 등등.

    어쨌든, 썸네일을 사용하실 경우 썸네일('미리 보기'라고 번역이 되어있네요)에 대한 가이드라인도 한번 참고해보시기 바랍니다.

    • 답변으로 표시됨 Squirrel Lee 2014년 2월 20일 목요일 오전 5:28
    2014년 2월 19일 수요일 오전 9:42
  • 도움주셔서 감사합니다 ^^
    2014년 2월 20일 목요일 오전 5:28