Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.88
Димитрий
0 / 0 / 1
Регистрация: 06.07.2008
Сообщений: 32
#1

Как массив загнать в Bitmap - C++ Builder

11.02.2009, 18:45. Просмотров 1967. Ответов 6
Метки нет (Все метки)

Люди помогите тану есть массив bits вот так созданный:%)
for (j=0; j<240;j++){
Pik = (Byte *)MyBuffer->ScanLine[j];
for (i=0; i<320 ;i++, a=i*4){
http://www.cyberforum.ru/cpp-builder/thread1505.html
int x = i*4; int y = j*x;
bits[0+x+y] = Pik[a+0];
bits[1+x+y] = Pik[a+1];
bits[2+x+y] = Pik[a+2];
bits[3+x+y] = Pik[a+3];
}}
а как его обратно в буфер загнать?
Пробовал BitBlt чего-то торможу тоже не получается.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2009, 18:45
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как массив загнать в Bitmap (C++ Builder):

Как нарисовать Bitmap на Bitmap?
Bitmap1-&gt;Canvas-&gt;Draw(1,1,Bitmap2); Так не работает, хотя с Image проходило.

Как обрезать Image (bitmap) в другой Image (bitmap)
Не получается никак пробовал с помощью Canvas-&gt;CopyRect. Вот метод где первый...

Как результат запроса GET загнать в строку
String site = &quot;http://www.ya.ru&quot;; HTTP-&gt;Get(site, MS); Есть такой...

Как сделать прозрачный Bitmap
БитМап можно сделать прозрачным?

Как запихнуть JPG в Bitmap
Народ объясните плз как запихнуть JPG в Bitmap, чтобы потом его можно было...

6
AntonChik
1085 / 583 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
12.02.2009, 13:04 #2
обратно в точности так же... посмотри пример в билдеровском хэлпе по ScanLine

p.s. не совсем этично объявлять переменные (x и y) в цикле, особенно во вложенном
0
Димитрий
0 / 0 / 1
Регистрация: 06.07.2008
Сообщений: 32
12.02.2009, 14:19  [ТС] #3
x, y поменял на а и в.
ScanLine пробовал
C++
1
MyBuffer->ScanLine[j] = (void*)bits[j];
выдаёт ошибку: TBitmap::ScanLine' is not accessible
0
AntonChik
1085 / 583 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
12.02.2009, 14:39 #4
ну ты написал :-D Scan на то и скан... получается что ты пытаешься сканер использовать как принтер)))
я имел ввиду как в примере... в цикле по-пиксельно...
0
Димитрий
0 / 0 / 1
Регистрация: 06.07.2008
Сообщений: 32
12.02.2009, 14:49  [ТС] #5
MyBuffer->Canvas->Pixels[j][i] = (byte*)bits[j];
а так тормозит ужасно
0
AntonChik
1085 / 583 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
12.02.2009, 14:52 #6
Код
int x,y;
for (j=0; j<240;j++){
Pik = (Byte *)MyBuffer->ScanLine[j];
for (i=0; i<320 ;i++){
x = i*4;
y = j*x;
Pik[x+0] = (Byte) bits[0+x+y];
...
...
...
}}
0
Димитрий
0 / 0 / 1
Регистрация: 06.07.2008
Сообщений: 32
12.02.2009, 16:09  [ТС] #7
Во тормоз! Pik это-же адрес, извините за глупый вопрос.
0
12.02.2009, 16:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2009, 16:09
Привет! Вот еще темы с решениями:

Как описать элемент Bitmap в структуре
Как описать в структуре состоящей из элементов типа int и TBitmap последний. ...

загнать и перезаписать в C++ Builder
при запуске программы в StringGrid добавляются поля из файла. При нажатии...

Загнать в StringGrid C++ Builder
подскажите плиз как загнать данные из текстового файла в StringGrid, если в...

Как быстро "протянуть" Bitmap ?
Добрый день, Уважаемые форумчане ! Не пинайте сильно, потому что выпиливать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru