Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Аналог ScanLine для Visual c++, считывание строки пикселей 
:(
    Опции темы
KKNull
Дата 5.6.2006, 05:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 30.1.2006

Репутация: нет
Всего: нет



Вот есть такой код в Билдере :
Здесь происходит считывание пикселей по строке, используя функцию ScanLine[y]

void __fastcall TForm1::ComprBtnClick(TObject *Sender)
{
    Byte *row_0, *row_1;
    Byte ar[6];

    if(pBitmap1 != NULL)
        delete pBitmap1;

    pBitmap1 = new Graphics::TBitmap();
    pBitmap1->LoadFromFile(OpenPictureDialog1->FileName);

    FILE *pF = fopen("c:\\compressed.420", "wb+");

    int x, y;

    for(y = 0; y < pBitmap1->Height; y+=2)
    {
        row_0 = (Byte *) pBitmap1->ScanLine[y];
        row_1 = (Byte *) pBitmap1->ScanLine[y+1];

        for(x = 0; x < 3*(pBitmap1->Width); x+=6)
        {
            Convert(row_0[x], row_0[x+1], row_0[x+2], ar);
            ar[3] = GetY(row_0[x+3], row_0[x+4], row_0[x+5]);

            ar[4] = GetY(row_1[x], row_1[x+1], row_1[x+2]);
            ar[5] = GetY(row_1[x+3], row_1[x+4], row_1[x+5]);

            if(fwrite(ar, 1, 6, pF) != 6)
            {
                ShowMessage("Output Error!");
            }
        }
    }

    fclose(pF);
}

Есть ли похожая функция для Visual C++ ?
 
может быть GetDIBits ?
 
PM MAIL   Вверх
Earnest
Дата 5.6.2006, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Нет, GetDIBits копирует биты изображения в заданный буфер. Т.е. так, конечно, тоже можно получить доступ к битам, но это несколько накладно, не правда ли...
Посмотри на класс CImage, у него есть ф-я GetPixelAddress - вроде то, что тебе нужно. И вообще, этот класс имеет похожую на твой код функиональность. Но имей ввиду, можно получить доступ к битам только DIB-изображения, но не простого Bitmap. Врочем, когда CImage загружается из файла, он всегда DIB. 


--------------------
...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0751 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.