2012-12-11 2 views
1

첫 프레임을 읽은 YUV 420 (144x176) 파일이 있고 R1G1B1 ... RnGnBn을 저장하는 RGB 배열 int rgb[HEIGHT*WIDTH*3];으로 YUV 구성 요소를 변환했으며 std::vector<unsigned char> image; image.resize(width * height * 4);. 내 질문입니다 : unsigned error = lodepng::encode(filename, image, width, height); 내가 오류없이 처리하고 PNG 파일을 생성하지만이 파일은 원래 이미지처럼 보이지 않습니다, 나는 RGBA 만 사용하는 동안 RGBA를 사용한다고 생각합니까?LodePng 24 비트 RGB 모드에서 선택하는 방법을 이해할 수 없습니다.

P. 이 정보가 충분한 지 모르겠으니 안되면 알려주세요.

답변

0

좋습니다. 이제이 질문을 닫아야합니다. 내가 4 번째 위치에 알파로 (255)를 추가했던 모든이 같은 :

if (i%3==0 && i != 0) 
      image[k++] = 255; 
     image[k] = rgb[i]; 

P.S. 내가 놓친 또 다른 중요한 점은 YUV 파일을 읽을 때 픽셀을 실제 위치에 놓는 것입니다. 위키의 그림과 같은 의미입니다. YUV에 문제가있을 경우이 점에 유의하십시오.

관련 문제