Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как пользоваться Bitmap->ScanLine??? 
:(
    Опции темы
stmamont
Дата 23.4.2005, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Пробовал по пикселам просто, но очень медленно. Надо делать быстрее... решил scanLine (если есть быстрее скажите). Для 8 битного изображения все понятно. Нужно создать переменную Byte... А что делать с ост. Как вообще с ним работать???? smile


--------------------
user posted image
PM MAIL ICQ   Вверх
drinkOut
Дата 24.4.2005, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 10.2.2005
Где: мой стакан?

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



В смысле "А что делать с ост. Как вообще с ним работать????"?...
Если для 8 битного ты используешь Byte, то для 16 битного используй Word, а для 32 битного используй Integer...
Вопрос был в этом? smile
--------------------
Жизнь жестока - когда у меня на руках все карты, она начинает играть в шахматы...www.certifications.ru - проверь себя
PM MAIL ICQ   Вверх
stmamont
Дата 24.4.2005, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Нув принципе все понятно кроме
Пытаюсь работать с потоками.... может быть ошибка (акцесс вайолэйшн) от того что я работаю с одним и тем же TBitmap одновременно
и с одним StringGrid??????????


--------------------
user posted image
PM MAIL ICQ   Вверх
drinkOut
Дата 25.4.2005, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 10.2.2005
Где: мой стакан?

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



Вероятно... Смотря как работаешь... smile
А зачем тебе это? Может, ты приведёшь код и мы найдём более подходящее решение... smile
--------------------
Жизнь жестока - когда у меня на руках все карты, она начинает играть в шахматы...www.certifications.ru - проверь себя
PM MAIL ICQ   Вверх
stmamont
Дата 26.4.2005, 07:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Проблема немного изменилась (т.к. с той я разобрался)) постараюсь описать полнее с кодом.
Есть ComboBox. Когда на него нажимают в перемнную Num кладется 4-хбитный цвет
Код

  switch(RepNum->ItemIndex){
............................
    case 5: Num=0x05; break;
    case 6: Num=0x06; break;
    case 7: Num=0x07; break;
    case 8: Num=0x08; break;
    case 9: Num=0x09; break;
    case 10: Num=0x0A; break;
    case 11: Num=0x0B; break;
...........................
  }

Где переменная Num объявлена как
Код

TColor Num;

Дальше мне нужно нарисовать на TBitmap этим цветом я делаю обработчик MouseMove
Код

void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
  if(mouse_pressed && Form2->Record->Caption=="STOP"){
    lay_num->Canvas->Brush->Color=Num;
    lay_num->Canvas->Pen->Color=Num;
    lay_num->Canvas->Ellipse(X-brush_size/2,Y-brush_size/2,X+brush_size/2,Y+brush_size/2);
  }
}

Но так насколько я понимаю рисуется эллипс цвета что то типа 0x000005
Но уже не в четырехбитных цветах а в RGB...
А как мне сделать чтоб рисовало в четырехбитных цветах?

//простите возможно надо было новую тему создать...


--------------------
user posted image
PM MAIL ICQ   Вверх
Гость_serge
Дата 26.4.2005, 14:20 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Заготовь в рудакторе изображений картинку 1x1 пикселей с нужной палитрой
вставь картинку в форму, в конструкторе формы измени ее размер до нужного
При использовании Canvas цвета выбираются обычным образом:
Код

int index;
switch(index) {
  case 0: Num = clBlack; break;
  case 1: Num = clRed; break;
  case 2: Num = clLime; break;
  ...
}

При использовании scanLine switch не нужен, index используется неосредственно (при 16-цветной палитре нужно в один байт упвковать 2 пикселя)

  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


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

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


 




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


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

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