Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2007, 12:37   #1
Kocapb
Пользователь
 
Регистрация: 28.10.2007
Сообщений: 61
По умолчанию Как определить размера картинки

Здраствуйте делаю диплом работа с картинками, открываю картинку с помощью OpenPictureDialog, ставлю AutoSize = tru, нужно теперь определить высоту и длинну этой картинки. Как обраться и к какому классу чтобы выяснить этот размер???
И еще вопрос нужно эту картинку перевести в RGB как это сделать ??? приветсвуется любая помщь
Kocapb вне форума Ответить с цитированием
Старый 17.11.2007, 15:11   #2
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Из диалога вы получаете имя графического файла, далее в какой компонент или переменную загружаете изображение???
Если это Image (приходится догадываться), то его размеры:
ширина Image1->Width; высота Image1->Height;
_Dmitry вне форума Ответить с цитированием
Старый 17.11.2007, 17:12   #3
Kocapb
Пользователь
 
Регистрация: 28.10.2007
Сообщений: 61
По умолчанию

Цитата:
Сообщение от _Dmitry Посмотреть сообщение
Из диалога вы получаете имя графического файла, далее в какой компонент или переменную загружаете изображение???
Если это Image (приходится догадываться), то его размеры:
ширина Image1->Width; высота Image1->Height;
да в Image.... спасибо огомное!!! Еще одно сейчас пока доступа к С++ нету, присваивать это значение можно просто WxH = Image1->Witdth ???
Мне это нужно для преобразование картинки в RGB пространство цветов.

for (i=0;i<WxH;i++)
for (j=0;j<WxH;j++)
{
a[i][j]=Image1->Canvas->Pixels[i][j];
b=a[i][j]/0x10000*0x10000;
g=a[i][j]/0x100*0x100-b;
r=a[i][j]-b-g;
grey[i][j]= (r + g/0x100 + b/0x10000)/3;
}
a[][] - исходный массив текущего изображения
grey[][] - RGB массив
тип float

Последний раз редактировалось Kocapb; 18.11.2007 в 05:43.
Kocapb вне форума Ответить с цитированием
Старый 17.11.2007, 17:46   #4
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Цитата:
Сообщение от Kocapb Посмотреть сообщение
присваивать это значение можно просто WxH = Image1->Witdth ???
Точно так, тип у этих параметров integer
_Dmitry вне форума Ответить с цитированием
Старый 17.11.2007, 22:00   #5
Kocapb
Пользователь
 
Регистрация: 28.10.2007
Сообщений: 61
По умолчанию

Цитата:
Сообщение от _Dmitry Посмотреть сообщение
Точно так, тип у этих параметров integer
спасибо огромное!!!
Kocapb вне форума Ответить с цитированием
Старый 17.11.2007, 22:22   #6
Kocapb
Пользователь
 
Регистрация: 28.10.2007
Сообщений: 61
По умолчанию

а еще вопрос как вывести полученную матрицу ???
у меня вообще проблема с выводом Матриц в билдере.... =\
для проверки выложу код:
if(OpenPictureDialog1->Execute())
{
WxH=Image1->Width;
WxW=Image1->Height;
Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName);
for (i=0;i<WxH;i++)
for (j=0;j<WxW;j++)
{
a[i][j]=Image1->Canvas->Pixels[i][j];
b=a[i][j]/0x10000*0x10000;
g=a[i][j]/0x100*0x100-b;
r=a[i][j]-b-g;
grey[i][j]= (r + g/0x100 + b/0x10000)/3;
}
for (i=0;i<WxH;i++)
for (j=0;j<WxH;j++)
{
Image1->Canvas->Pixels[i][j]=grey[i][j]+grey[i][j]*0x100+grey[i][j]*0x10000;
}
}
вывел значения высоты и ширины для одной из загружаемрй картинки
Form1->Label1->Caption = WxH; = 105 высота
Form1->Label1->Caption = WxW; = -1 ширина
почему ширина отрицательная получается?
и еще в цикле
for (i=0;i<WxH;i++)
for (j=0;j<WxW;j++) надо так или так?
for (i=0;i<=WxH;i++)
for (j=0;j<=WxW;j++) последнее значение включать?

Последний раз редактировалось Kocapb; 18.11.2007 в 05:44.
Kocapb вне форума Ответить с цитированием
Старый 18.11.2007, 11:55   #7
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Цитата:
Сообщение от Kocapb Посмотреть сообщение
вывел значения высоты и ширины для одной из загружаемрй картинки
Form1->Label1->Caption = WxH; = 105 высота
Form1->Label1->Caption = WxW; = -1 ширина
почему ширина отрицательная получается?
и еще в цикле
for (i=0;i<WxH;i++)
for (j=0;j<WxW;j++) надо так или так?
for (i=0;i<=WxH;i++)
for (j=0;j<=WxW;j++) последнее значение включать?
Определять размеры нужно после загрузки картинки в Image, координаты пикселов будут [0..(Width-1),0..(Height-1)]
_Dmitry вне форума Ответить с цитированием
Старый 18.11.2007, 16:06   #8
Kocapb
Пользователь
 
Регистрация: 28.10.2007
Сообщений: 61
По умолчанию

Цитата:
Сообщение от _Dmitry Посмотреть сообщение
Определять размеры нужно после загрузки картинки в Image, координаты пикселов будут [0..(Width-1),0..(Height-1)]
косяк исправил =) ложанулся нехило
Kocapb вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тег фиксации размера ячейки Prok HTML и CSS 7 23.07.2008 00:46
Среди 20 введёных чисел определить чётные, распечатать их, определить min Spade Помощь студентам 4 15.06.2008 18:39
Помогите определить макс кол цветов картинки 32x32 пикс объёмом 512 байт www_2008 Паскаль, Turbo Pascal, PascalABC.NET 4 13.05.2008 20:25
Два размера фаила Иллидан Безопасность, Шифрование 1 09.03.2008 00:13
Изменение размера картинки Борис Низов PHP 6 09.12.2007 16:26