Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > C++ Builder
Перезагрузить страницу Создание формата изображения используя TBitmap
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Грымзик Грымзик вне форума
Member
 
Сообщений: 273
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
Регистрация: 25.09.2009
По умолчанию Создание формата изображения используя TBitmap - 18.04.2010, 17:28

Извините, если такой вопрос уже встречался, я поискала и не нашла.
Мне по заданию надо было создать свой формат изображения, я просто хранила для каждого пикселя
6 чисел в 16-ричной системе счисления, по 2 на каждый цвет.
Код:
Image->Picture->Bitmap->Height=HH;
Image->Picture->Bitmap->Width=WW;
char R1,R2,G1,G2,B1,B2;
for (int i=0; i<HH; ++i)
     for (int j=0; j<WW; ++j)
     {
          fin>>R1>>R2>>G1>>G2>>B1>>B2;
          Image->Picture->Bitmap->Canvas->Pixels[i][j]=(TColor)RGB(color(R1,R2),color(G1,G2),color(B1,B2));
      }
Image->Height=max(Image->Picture->Height,285);
Image->Width=max(Image->Picture->Width,280);
При открытии изображения размер "холста" устанавливается правильный, но на нем отображается только
часть изображения - квадратной формы, со стороной равной минимуму из высоты и ширины.
Со значениями переменных HH, WW, i, j проблем нет, я проверяла на отладчике.
Подскажите пожалуйста чем это может быть вызвано и как это можно избежать. Заранее спасибо!
Ответить с цитированием
  (#2 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,247
Сказал(а) спасибо: 26
Поблагодарили 51 раз(а) в 51 сообщениях
Регистрация: 16.10.2005
По умолчанию 18.04.2010, 23:54

У Вас, вероятно, картинка еще и повернутой на 90 градусов будет, потому что Вы порядок индексов перепутали.
Ответить с цитированием
  (#3 (permalink)) Старый
Грымзик Грымзик вне форума
Member
 
Сообщений: 273
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
Регистрация: 25.09.2009
По умолчанию 19.04.2010, 00:35

Нет, с этой квадратной частью картинки все замечательно. Ведь я же этот формат создаю и вывожу я все в том же порядке,
в котором и считываю:
Код:
for (int i=0; i<Image->Picture->Height; ++i)
     for (int j=0; j<Image->Picture->Width; ++j)
     {
           TColor Col=Image->Picture->Bitmap->Canvas->Pixels[i][j];
           int R=GetRValue(Col), G=GetGValue(Col), B=GetBValue(Col);
           fout<<R/16<<R%16<<G/16<<G%16<<B/16<<B%16;
     }
Ответить с цитированием
  (#4 (permalink)) Старый
Грымзик Грымзик вне форума
Member
 
Сообщений: 273
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
Регистрация: 25.09.2009
По умолчанию 19.04.2010, 01:43

Вопрос решен, спасибо, Вы были правы - ошибка в порядке индексов. Ведь при выводе i у меня пробегает все строки, хотя в Pixels[i][j] первый индекс отвечает за столбцы.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Консольный вариант программы, использующей TBitmap swbor C++ Builder 9 07.06.2010 20:54
Создание директории с папками используя CreateDir FileCreate toshkaexe C++ Builder 4 25.06.2008 19:35
Создание одного компонента из двух используя TLabeledEdit radistao C++ Builder 2 11.06.2008 14:49
Загрузка в TBitmap текущее изображение с TImage Frullani C++ Builder 9 17.09.2007 16:55
Как использовать изображения формата png в Delphi Хиларион Delphi 3 27.11.2006 21:15
Создание Controls используя Designer AleksT_0 .NET 0 24.10.2006 20:19
Graphics::TBitmap... научите задавать глубину более 32-х бит Романнист C++ Builder 41 11.05.2006 15:06
Как перевести TBitmap в PCX ArchiCoder Delphi 0 04.04.2006 21:39
Как HBITMAP пределать в TBitmap -dim- C++ Builder 1 31.05.2005 09:49
QPainter_setViewport + TBitmap изменение начало координат vinco Kylix 1 19.05.2004 15:06
Описание PNG формата St@lker Программирование графики 8 14.03.2004 18:26
Чтение 3ds формата toFlash Программирование графики 1 11.02.2004 16:18



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов