vitaly_l писал(а):Вы что просили Byte в Word. А зачем тогда Word пытаетесь в TColor передать?Чтобы посмотреть результат. Я вывожу его в битмап и потом на экран и смотрю чего вышло.
TColor это тип со сложной структурой он состоит из 4-х 8 битовых компонент цвета. Т.е его размер 4 байта, а вы пытаетесь ему присвоить 2 байта.
При этом 4 компонента трактуется по разному в зависимости от обстоятельств.
- Код: Выделить всё
function RGBToColor(R, G, B: Byte): TColor;
begin
Result := (B shl 16) or (G shl 8) or R;
end;
vitaly_l писал(а):А зачем мне врать?
А я почём знаю? Или вы хотите что-бы я телепатию ещё включил?
vitaly_l писал(а):Words: PWords;Вот на это компилятор ругается и говорит, что перепутаны PByte и PWord.Врёте. А зачем мне врать? Он ругается, сейчас для Вас скопирую, всё что он мне говорит: Error: Incompatible types: got "PByte" expected "PWords"
И что с того? Вы посмотрите на что он ругается. Это-же совершенно другая строчка нежели чем Вы привели.
А во вторых уж потрудитесь нормально приводить код.
vitaly_l писал(а):Я сделать??? Это не мой код он в длл, это VFW мне выдаёт картинку с камеры, я её пытаюсь прочитать минуя клипбоард.
VFW возвращает буфер с массивом данных для DIB. А массив в памяти всегда идёт последовательно.
И вообще VFW это устаревшая технология, майкрософт рекомендует использовать DirectX.
vitaly_l писал(а):Может там не DIB формат, а какой-то другой?
В справки что написано? Без кода можно только гадать. Толи вы сжатый фрейм получаете в неизвестном формате. Толи у вас DIB.
А вот формат этого DiB вы до сих пор не удосужилась представить общественности. Поэтому пока, что пальцем в небо тыкаете.
biCompression чему равно? Да и другие поля тоже бы знать надо.
vitaly_l писал(а):Может там не DIB формат, а какой-то другой? Информация странно себя ведёт, т.к. первый кадр выдаёт мне с сжатием BI_RGB, а потом возвращается к какому-то другому сжатию и вот это другое сжатие я могу видеть нормально в ЧБ.
В каком другом? Какому формату соответствует код в списке FourCC? Или можно biCompression представить в виде массива из 4 символов типа char(ASCII) и показать сюда результат.
И указатели проверти.
Добавлено спустя 4 минуты 8 секунд:
vitaly_l писал(а):Там по идее может быть: например YUV поток(попробую в эту сторону покапать), а не DIB, т.к. к формату DIB или к компрессии BE_RGB, он преобразует только первый кадр, а потом возвращается в свою кодировку.
Если формат не соответствует кодам FourCC, то можно попробовать сменить на тот который нужен вам.