![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Goldberg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 3.6.2004 Репутация: нет Всего: нет |
Всем доброго времени суток!
Наконец-то моя камера нормально заработала. Оказалось, что мне дали старую документацию. Так вот, я получаю изображение в чаровый массив, например char chImage[60000]. В дальнейшем я хочу использовать CImage, говорят, что в нем есть все, что мне необходимо(что именно мне необходимо, долго рассказывать Так вот как реализовать создание изображения, с использованием CImage? Может кто знает где есть примерчик? Ну или просто с чего начать, чисто теоритически, без кода, приведите краткий алгоритм моих дейтсвий. P.S.: Искал и в Яндексе, и в Рамблере, и в Гугле, может плохо искал, но не нашел, честно. --------------------
Вот такая у меня привычка, браться за задание, о выполнение которого я изначально не имею никакого представления. |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 7 Всего: 19 |
Сначала создаеш HBITMAP и загружаеш пиксели в него, потом вызаваеш Attach из CImage.
|
|||
|
||||
| Goldberg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 3.6.2004 Репутация: нет Всего: нет |
...
Это сообщение отредактировал(а) Goldberg - 23.10.2004, 17:53 --------------------
Вот такая у меня привычка, браться за задание, о выполнение которого я изначально не имею никакого представления. |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 7 Всего: 19 |
Goldberg
Нет, это вместо Create. HBITMAP надо создать при помощи GDI API. Посмотри CreateBitmap в параметр lpvBits и ставиш свой масив. |
|||
|
||||
| Goldberg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 3.6.2004 Репутация: нет Всего: нет |
CBitmap bmp;
bmp.CreateBitmap(600, 600, 256, 12, chReadImage); CImage image; image.Attach(bmp); image.Save("D:\\\aaaaa", ?????????? ); Во втором параметры пишу ImageFormatGIF, говорит undeclared identifier Добавлено @ 18:22 Оказалось можно просто - image.Save("D:\\\aaaaa.gif"); Но все равно что-то делаю ни так, в процессе работы появляются ошибки. --------------------
Вот такая у меня привычка, браться за задание, о выполнение которого я изначально не имею никакого представления. |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 7 Всего: 19 |
Goldberg
Это консты в файле Gdiplusimaging.h прописанны надо писать Gdiplus::ImageFormatGIF Добавлено @ 18:26 Goldberg Какие ошибки ? |
|||
|
||||
| Goldberg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 3.6.2004 Репутация: нет Всего: нет |
В altimage.h in Line 504
Expression: hBitmap != 0 --------------------
Вот такая у меня привычка, браться за задание, о выполнение которого я изначально не имею никакого представления. |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 7 Всего: 19 |
Goldberg
Это из-за CBitmap. сделай так:
Добавлено @ 18:47 Goldberg Только сейчас обратил внимание 12bpp и размер массива 60000 это к слову, или реальные параметры ? Это сообщение отредактировал(а) Mad - 23.10.2004, 18:46 |
|||
|
||||
| Goldberg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 3.6.2004 Репутация: нет Всего: нет |
12 бит/пиксел
Рамер кадра - 93750 байт.(не 60000) Добавлено @ 18:54 CBitmap bmp; bmp.CreateBitmap(600, 600, 1, 12, chReadImage); CImage image; image.Attach(bmp); --------------------
Вот такая у меня привычка, браться за задание, о выполнение которого я изначально не имею никакого представления. |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 7 Всего: 19 |
Goldberg
Нестыковка получается. Если считать что побайтное выравнивание отсутствует, тогда размер кадра 540000 быйт А с выравниванием вообще 720000 байт Это если кадр 600х600 как ты в функцию пишеш. У тебя в масиве риксы случаем ни чем не упакованны ? |
|||
|
||||
| Goldberg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 3.6.2004 Репутация: нет Всего: нет |
Извиняюсь 250Х250.
Ошибок не возникает, но и изображение не сохраняется... Добавлено @ 19:07 CBitmap bmp; bmp.CreateBitmap(250, 250, 1, 12, chReadImage); CImage image; image.Attach(bmp); image.Save("C:\ABC.jpg"); Добавлено @ 19:13 - Команда Set_Mode – код = 0AH Устанавливает биннинг и режим передачи данных камерой MODE BINNING Прореживание Бит/пиксел Разрешение Размер кадра 0 1х1 нет 12 1000х1000 1500000 1 1х1 1:4 8 250х250 250000 2 2х2 нет 12 500х500 375000 3 2х2 1:4 8 125х125 15625 4 4х4 нет 12 250х250 93750 5 4х4 1:2 8 125х125 15625 Устанавливаю MODE 4. Добавлено @ 19:14 Упс. Таблица перекосилась, но понять вроде можно. --------------------
Вот такая у меня привычка, браться за задание, о выполнение которого я изначально не имею никакого представления. |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 7 Всего: 19 |
Goldberg
Вопервы у тебя масив получается не выровненный (pBits надо выравнивать по словам, а не по байтам). Еще меня смущает 12bpp. Дело в том, что в описании CreateBitmap для GDI, pBits описан как указатель на масив 8-битных значений. А в описании CBitmap::CreateBitmap 16-битных значений попробуй так (именно попробуй, сам не могу. GDI+ нема
|
|||
|
||||
| Goldberg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 3.6.2004 Репутация: нет Всего: нет |
Опять же никаких ошибок, а результат нулевой.
И вот, что: image --> m_hBitmap 0x0a05071e {unused=??? } HBITMAP__ * --> unused CXX0030: Error: expression cannot be evaluated int Добавлено @ 19:42 BITMAP не создается похоже... --------------------
Вот такая у меня привычка, браться за задание, о выполнение которого я изначально не имею никакого представления. |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 7 Всего: 19 |
Даже пустой файл не создается ? |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 7 Всего: 19 |
Кажись разобрался.
CreateBitmap понимает тока 1,4,8,16,24,32bpp значит код получится такой:
код не оптимизирован. так на скорую руку. Это сообщение отредактировал(а) Mad - 24.10.2004, 13:28 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |