Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEnginee Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
Se você é novo em programação gráfica, você pode esperar que um bitmap seria organizado na memória para que a linha superior da imagem apareceu no início do buffer, seguido pela próxima linha e assim por diante. No entanto, não é necessariamente esse o caso. No Windows, os bitmaps independentes do dispositivo (DIBs) podem ser colocados na memória em duas orientações diferentes, de baixo para cima e de cima para baixo.
Em um DIB de baixo para cima, o buffer de imagem começa com a linha inferior de pixels, seguida pela próxima linha para cima e assim por diante. A linha superior da imagem é a última linha no buffer. Portanto, o primeiro byte na memória é o pixel inferior esquerdo da imagem. No GDI, todos os DIBs são bottom-up. O diagrama a seguir mostra o layout físico de um DIB de baixo para cima.
Em um DIB de cima para baixo, a ordem das linhas é invertida. A linha superior da imagem é a primeira linha na memória, seguida pela próxima linha para baixo. A linha inferior da imagem é a última linha no buffer. Com um DIB de cima para baixo, o primeiro byte na memória é o pixel superior esquerdo da imagem. O DirectDraw usa DIBs de cima para baixo. O diagrama a seguir mostra o layout físico de um DIB de cima para baixo:
Para DIBs RGB, a orientação da imagem é indicada pelo biHeight membro da estruturaBITMAPINFOHEADER. Se biHeight for positivo, a imagem é de baixo para cima. Se biHeight for negativo, a imagem é de cima para baixo.
DIBs em formatos YUV são sempre de cima para baixo, e o sinal do membro biHeight é ignorado. Os descodificadores devem oferecer formatos YUV com biHeight depositivo, mas também devem aceitar formatos YUV com biHeight de negativos e ignorar o sinal.
Além disso, qualquer tipo de DIB que utilize um FOURCC no membro do biCompression , deve expressar o seu biHeight como um número positivo, independentemente da sua orientação, uma vez que o próprio FOURCC identifica um esquema de compressão cuja orientação da imagem deve ser entendida por qualquer filtro compatível.
Tópicos relacionados