Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прорисовка картинки, Как прорисовать картинку на форме ? 
:(
    Опции темы
Sheff
Дата 15.4.2002, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 503
Регистрация: 25.3.2002
Где: Зеленоград

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



Допустим у меня есть char массив, в котором содержится картинка, т.е bitmap без всяких там хэдэров и т.д, как эту картинку прорисовать на форме ?


--------------------
--------------------------
Шеф всегда прав :)
PM MAIL WWW ICQ   Вверх
Melancholy
Дата 16.4.2002, 02:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Через Canvas наверное...
//---------------
for (y=0;y<PictureHeight;y++)
for (x=0;x<PictureWidth;x++)
Form1->Canvas->Pixel[x,y]=???
//---------------
Вроде так
PM MAIL ICQ   Вверх
Sheff
  Дата 16.4.2002, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 503
Регистрация: 25.3.2002
Где: Зеленоград

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



Цитата(Melancholy @ 16.4.2002, 03:18)
Через Canvas наверное...
//---------------
for (y=0;y<PictureHeight;y++)
for (x=0;x<PictureWidth;x++)
Form1->Canvas->Pixel[x,y]=???
//---------------
Вроде так

1.)Вообще то я пишу в VC++
2.)Нет, так не пойдёт, т.к bit map это не просто набор точек, тут надо работать с памятью, может надо юзать функции для управления памятью, кто-нибудь знает что мне делать ?


--------------------
--------------------------
Шеф всегда прав :)
PM MAIL WWW ICQ   Вверх
neutrino
Дата 16.4.2002, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

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



У тебя типа char, что? Цвета? Если цвета, то как они там построены? Я имею ввиду первый char красное состовляюшее, второй - зеленое, третий - синие.


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
Sheff
Дата 16.4.2002, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 503
Регистрация: 25.3.2002
Где: Зеленоград

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



Открой какую-нибудь BMPшку и посмотри на её содержимое после первых 14 байт(хэдр), это и есть картинка и представь что всё это лежит в массиве типа char, и как это нарисовать на форме ?


--------------------
--------------------------
Шеф всегда прав :)
PM MAIL WWW ICQ   Вверх
neutrino
Дата 16.4.2002, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

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



Код


char bitmap[9999999999999999];
int counter=0;

for (y=0;y<PictureHeight;y++)
 for (x=0;x<PictureWidth;x++) {
   red=bitmap[counter++];
   green=bitmap[counter++];
   blue=bitmap[counter++];
   Form1->Canvas->Pixel[x,y]=RGB(red,green,blue);
 }



--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
Sheff
Дата 16.4.2002, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 503
Регистрация: 25.3.2002
Где: Зеленоград

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



Не знаю, не знаю, подобный код будет работать ОЧЕНЬ медленно, а вот например Paint прорисовывает BMP очень быстро. =)


--------------------
--------------------------
Шеф всегда прав :)
PM MAIL WWW ICQ   Вверх
Fantasist
Дата 17.4.2002, 06:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй
***


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

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



Есть всякие API, типа CreateBitmap, CreateBitmapIndirect. Потом их можно быстро положить на DC.


--------------------
Волны гасят ветер...
PM MAIL   Вверх
Rimas
Дата 17.4.2002, 08:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











У класса CDC есть функция SetPixel
  Вверх
neutrino
Дата 18.4.2002, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

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



А зачем тебе это вообше надо? Может можно как-то по другому все сделать?


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
keisik
Дата 18.4.2002, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Можно использовать SetPixel для контекста устройства в памяти, в него он нарисует сравнительно быстро, а потом уже то что получилось разом перекинуть на форму через BitBlt
--------------------
...None of that can stop us now,we will make it through somehow...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

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


 




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


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

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