내가 아비 동영상과 함께 제공되었습니다에서 .AVI 파일의 가로 세로 비율을 취득하고 난 DirectShow를 lib 디렉토리를 사용하여 표시해야합니다. 그래서 프레임별로 비트 맵 이미지 프레임을 표시하기 위해 pictureBox를 사용하고 있지만 가로 세로 비율을 유지하려고합니다. Windows Form에서이 작업을 수행하는 방법 미리 감사드립니다. 편집 : 나도 같은 화면 비율에 비트 맵 이미지의 일부를 저장해야합니다.어떻게 C#을
어떻게 C#을
답변
AVI 포맷은 비디오 화면 비율을 유지하지 않기 때문에 당신은 단지 비디오 스트림의 픽셀 해상도에 따라 정사각형 픽셀 및 화면 비율을 가정 할 수있다. 스트림에서 특정 프레임/비트 맵을 얻는 대부분의 방법은 원본 비디오 해상도로 이미지를 얻습니다. 가로 세로 비율을 유지하려고하는 비트 맵을 더 많이 조작하면 이미지 치수를 사용하여 간단한 수학을 수행한다고 가정합니다. 이미지를 그리는 컨트롤이나 영역의 크기를 적절하게 조절할 수 있습니다. original-width * presentation-height = original-height * presentation- 폭. 또는 적용 가능한 경우 단순히 - 종횡비를 유지하는 WinForms 컨트롤의 기능을 활용하십시오.
DirectShow를 API (비디오 렌더러)를 사용하면 현재 비디오가 바로 거기 가로 세로 비율을 유지하는 옵션이있다, 그러나 그것은 약간 사용하는 렌더러의 버전에 따라 다릅니다.
비디오의 높이가 해상도 높이와 같거나 ... 정확히는 해상도 높이와 동일한 해상도 높이와 비디오의 가로 세로 비율입니다. – midnitekoder
AVI 파일에서 - 설명자가 비율을 재정의 할 필드가 없으므로 예. 다른 컨테이너는보다 유연하고 픽셀 해상도를 가지며 종횡비를 분리 할 수 있습니다. 이렇게하면 소위 "비 정사각형 픽셀"과 효과적인 가로 세로 비 조정을 정의 할 수 있습니다. –
mpg 형식의 경우 "비 정사각형"픽셀입니까? .. mpg 비디오는 물론 avi도 사용해야합니다. 미리 감사드립니다 :) – midnitekoder
** PictureBox는 ** 당신을 위해 ** 않습니다. 이미지를 가운데에 표시하거나 (결국 자른) 확대/축소 할 수 있습니다 (종횡비 유지). –
DS를 사용하는 경우 왜 비디오를 실행하는 대신 비트 맵을 표시합니까? – Plutonix
사실, 나는 영화의 프레임도 가지고 작업 해왔다. 는 DS에서 비트 맵을 얻을 때 형식 본래 AR – midnitekoder