Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
 |  |  |
[C++] Признаю, ошибся маленько :) 02.10.01 23:02 Число просмотров: 911
Автор: idiot (noJIHbIu') Статус: Незарегистрированный пользователь
|
Во, спасибо вам - здорово помогли. Вот возник вопрос насчет инверсии...
Вот этот фрагмент кода инвертирует изображение (из хэлпа взято).
Image1->Canvas->CopyMode =cmPatInvert;
Image1->Canvas->CopyRect(Rect(0,0,Form1->Image1->Width,Form1->Image1->Height),Image1->Canvas, Rect(0,0,Form1->Image1->Width,Form1->Image1->Height));
}
Собственно, вопрос: это вообще правильно написано или это вариант "для неполного идиота сойдет.."? Если верно второе, то напишите правильную инверсию, пожалуйста!
|
|
<programming>
|
[C++] Во блин.... :(( -(Borland C++ Builder)- 02.10.01 01:59
Автор: idiot (noJIHbIu') Статус: Незарегистрированный пользователь
|
Всем привет. Помогите в след. вопросе, если не трудно...
Взял я файл (BMP), загнал его в массив MyPicture[][].. Вот код:
for(int i=0; i<Form1->Image1->Width; i++)
for(int j=0; j<Form1->Image1->Height; j++)
MyPicture [i] [j]=Image1->Canvas->Pixels [i] [j];
Вопрос: как мне этот массив теперь взять и вывести на экран?? %) Вариант с
for(int i=0; i<Form1->Image1->Width; i++)
for(int j=0; j<Form1->Image1->Height ;j++)
Image1->Canvas->Pixels [i] [j]=MyPicture [i] [j];
не проходит - ОЧЕНЬ медленно грузится!! :((
|
 |
[C++] однако.. 02.10.01 17:27
Автор: zelych Статус: Member
|
[..skip..]
> Image1->Canvas->Pixels [i] [j]=MyPicture[i] [j]; а зачем ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ??
не проще ли:
Image1[i][j] = MyPicture[i][j];
чтобы обратиться к полю структуры, необходимо как минимум четыре команды..
а если прямо к массиву, то всего две..
ну или вот так
memcpy( Image1->Canvas->Pixels, MyPicture[i] [j], pictureSize );
тогда и со структурами пойдёт
|
 |  |
[C++] Признаю, ошибся маленько :) 02.10.01 18:06
Автор: Cyril <sc> Статус: Member
|
|
|
 |  |  |
[C++] Признаю, ошибся маленько :) 02.10.01 23:02
Автор: idiot (noJIHbIu') Статус: Незарегистрированный пользователь
|
Во, спасибо вам - здорово помогли. Вот возник вопрос насчет инверсии...
Вот этот фрагмент кода инвертирует изображение (из хэлпа взято).
Image1->Canvas->CopyMode =cmPatInvert;
Image1->Canvas->CopyRect(Rect(0,0,Form1->Image1->Width,Form1->Image1->Height),Image1->Canvas, Rect(0,0,Form1->Image1->Width,Form1->Image1->Height));
}
Собственно, вопрос: это вообще правильно написано или это вариант "для неполного идиота сойдет.."? Если верно второе, то напишите правильную инверсию, пожалуйста!
|
 |  |  |  |
[C++] Признаю, ошибся маленько :) 03.10.01 11:13
Автор: Xan Статус: Незарегистрированный пользователь
|
> Во, спасибо вам - здорово помогли. Вот возник вопрос насчет > инверсии... > > Вот этот фрагмент кода инвертирует изображение (из хэлпа > взято). > > Image1->Canvas->CopyMode =cmPatInvert; > Image1->Canvas->CopyRect(Rect(0,0,Form1->Image1-&g > t;Width,Form1->Image1->Height),Image1->Canvas, > Rect(0,0,Form1->Image1->Width,Form1->Image1->He > ight)); > } > > Собственно, вопрос: это вообще правильно написано или это > вариант "для неполного идиота сойдет.."? Если верно второе, > то напишите правильную инверсию, пожалуйста!
Все верно что правильно работает. Пример имнхо вполне корректен но я обычно делаю CopyMode =cmDstInvert; когда хочу чтобы первоначальное изображение сохранилось.
ЗЫ и чего это ты за такой ник спрятался пиши нормально здесь все свои >:(
|
 |
[C++] Во блин.... :(( -(Borland C++ Builder)- 02.10.01 03:10
Автор: + <Mikhail> Статус: Elderman
|
> Всем привет. Помогите в след. вопросе, если не трудно... > > Взял я файл (BMP), загнал его в массив MyPicture[][].. Вот > код: > > for(int i=0; i<Form1->Image1->Width; i++) > for(int j=0; j<Form1->Image1->Height; j++) > MyPicture [i] [j]=Image1->Canvas->Pixels > [i] [j]; > > Вопрос: как мне этот массив теперь взять и вывести на > экран?? %) Вариант с > for(int i=0; i<Form1->Image1->Width; i++) > for(int j=0; j<Form1->Image1->Height ;j++) > Image1->Canvas->Pixels [i] [j]=MyPicture > [i] [j]; > не проходит - ОЧЕНЬ медленно грузится!! :((
Zagnal v massiv bot i ebis` teper`.
|
 |  |
[C++] Во блин.... :(( -(Borland C++ Builder)- 02.10.01 03:18
Автор: idiot (noJIHbIu') Статус: Незарегистрированный пользователь
|
> Zagnal v massiv bot i ebis` teper`.
Чем я и занимаюсь. Еще предложения? Может, кто поможет все-таки?
|
 |  |  |
[C++] Во блин.... :(( -(Borland C++ Builder)- 02.10.01 10:41
Автор: Cyril <sc> Статус: Member
|
> > Zagnal v massiv bot i ebis` teper`. > > Чем я и занимаюсь. Еще предложения? Может, кто поможет > все-таки?
Забей на массивы и сохраняй сразу bitmap
так же намного проще, зачем создавать себе такой
геморой, а потом спрашивать чой-то мои картинки медленно выводятся.
Если программу можно написать проще, то лучше сделай это !
|
 |  |  |  |
:( 02.10.01 13:21
Автор: idiot (noJIHbIu') Статус: Незарегистрированный пользователь
|
> Забей на массивы и сохраняй сразу bitmap > так же намного проще, зачем создавать себе такой > геморой, а потом спрашивать чой-то мои картинки медленно > выводятся. > > Если программу можно написать проще, то лучше сделай это ! > > Да я с этим массивом же работаю...:( Я б рад все нафиг сразу в битмап впихнуть... :((
|
 |  |  |  |  |
??? 02.10.01 15:27
Автор: Cyril <sc> Статус: Member
|
> > Забей на массивы и сохраняй сразу bitmap > > так же намного проще, зачем создавать себе такой > > геморой, а потом спрашивать чой-то мои картинки > медленно > > выводятся. > > > > Если программу можно написать проще, то лучше сделай > это ! > > > > > Да я с этим массивом же работаю...:( Я б рад все нафиг > сразу в битмап впихнуть... :((
А так не проще bitmap.canvas.pixels[i,j];
или у тебя есть какие-либо причины так не делать
Если тебе все же нужно вывести массив
то создай bitmap нужной ширины, высоты скопируй туда свой массив
ну а дальше выводи, наверное это самый оптимальный вариант для тебя
|
|
|