Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
srg3000
Зарегистрирован: 13.04.2005 Сообщения: 5
|
Добавлено: Ср Июн 22 2005 09:28 Заголовок сообщения: Выделить R,G,B из рисунка. |
|
|
Нужно выделить по отдельности R,G,B из jpg, bmp. Думаю, нужно использовать компонент TImage. Как получить for(x=1;x<=Widthpicture;x++)
for(y=1;y<=Heightpicture;y++)
BYTE colorR[x][y]= ???
Плиз, очень надо. |
|
Вернуться к началу |
|
|
srg3000
Зарегистрирован: 13.04.2005 Сообщения: 5
|
Добавлено: Ср Июн 22 2005 11:08 Заголовок сообщения: |
|
|
Блин, для начала bmp не пошел.
На API сделал следующее:
Это public:
BYTE* pPixels;
BITMAPINFO* pBmpInfo;
BOOL TForm10::ReadBMP(void)
{
BYTE* pBMP;
DWORD dwBmpSize;
DWORD dwFileLength;
DWORD dwBytesRead;
BITMAPFILEHEADER BmpHeader;
HANDLE hFile=CreateFile(OpenDialog1->FileName.c_str(),
GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL);
if (hFile==INVALID_HANDLE_VALUE)
{
Application->MessageBoxA("ошибка","Невозможно открыть файл",IDOK);
return false;
}
dwFileLength=GetFileSize(hFile,NULL);// размер правильный при дебаге
dwBmpSize=dwFileLength-sizeof(BITMAPFILEHEADER);
pBMP=(BYTE*)malloc (dwBmpSize);
//SetFilePointer(hFile,sizeof(BITMAPFILEHEADER),NULL,FILE_BEGIN);
ReadFile(hFile,&BmpHeader,sizeof(BmpHeader),&dwBytesRead,NULL);
ReadFile(hFile,(LPVOID)pBMP,dwBmpSize,&dwBytesRead,NULL);
CloseHandle(hFile);
pBmpInfo=(BITMAPINFO*)pBMP;
WORD uuuu=pBmpInfo->bmiHeader.biBitCount; -- эдесь почему-то ноль при дебаге, а должно быть 24
Че, я не так делаю? |
|
Вернуться к началу |
|
|
GREA
Зарегистрирован: 14.05.2003 Сообщения: 758 Откуда: Новосибирск
|
Добавлено: Ср Июн 22 2005 19:15 Заголовок сообщения: |
|
|
Если уж через TImage, то самое тупое:
colorR[x][y]=GetRValue(Image1->Canvas->Pixels[x][y])
Только это тормозно будет слишком.
Поэтому посмотри хелп по функции ScanLine |
|
Вернуться к началу |
|
|
srg3000
Зарегистрирован: 13.04.2005 Сообщения: 5
|
Добавлено: Ср Июн 22 2005 22:30 Заголовок сообщения: |
|
|
Скорость не имеет значение. Главное(а может быть и не главное), чтоб до вывода изображения на экран. Это самое тупое ме как раз и нужно, спасибо. |
|
Вернуться к началу |
|
|
|