Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
 Аватар для ijonhson
47 / 47 / 15
Регистрация: 09.03.2011
Сообщений: 584

Записать массив пикселей в файл

15.03.2013, 22:43. Показов 2160. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважвемое сообщество не могу домучать простейшую програмку,в двух словах:
создаю структуру:\
C++
1
2
3
4
5
6
7
8
struct res
{
      int height;
      int width;
      int xop;
      int yop;
      int pixel[786432]; //1024*768
};
заполняю:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
res bon;
    bon.height=vis;
    bon.width=shir;
    bon.xop=xop;
    bon.yop=yop;
    for(int x=0;x<shir;x++)
      {
      for(int y=0;y<vis;y++)
       {
       int i=x*y;
      bon.pixel[i] =Image1->Picture->Bitmap->Canvas->Pixels[x][y];
       }
      }
сохраняю:
C++
1
2
3
4
ofstream file;
    file.open("res.ij",std::ios::binary);
    file.write((char*)&bon,sizeof(bon));
    file.close();
открываю файл а в массиве какая-то ерись,ну не моё изображение точно:
16777215
16777215
16777215
16777215
16777215
16777215
16777215
16777215
16777215
0
0
16777215
16777215
16777215 и т.д. чёрно белая ерись.
где собчка всё таки порылась?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.03.2013, 22:43
Ответы с готовыми решениями:

Записать 2мерный массив в файл
желательно самым простым способом... подскажите как?

Записать массив структур в файл
Всем привет, давно не садился за клавиатуру, захотелось вспомнить. В простенькой програмке есть вектор структур приблизительно так ...

Упорядочить массив и записать в файл
День добрый! Стоит такая задача:необходимо написать прогу, чтобы открывала .txt, в котором записаны данные в виде битов построчно по n...

3
return (true);
 Аватар для mimicria
1977 / 1112 / 221
Регистрация: 19.04.2011
Сообщений: 2,346
15.03.2013, 23:00
Цитата Сообщение от ijonhson Посмотреть сообщение
int i=x*y;
При первом проходе 0*любое_число = 0

Добавлено через 1 минуту
C++
1
int i=x*vis+y; // скорее всего
1
 Аватар для ijonhson
47 / 47 / 15
Регистрация: 09.03.2011
Сообщений: 584
16.03.2013, 01:19  [ТС]
спасибо первую строку я точно прохлопал но дальше тоже самое я вывел значения массива в memo,такое впечатление что конвертирование TColor в int даёт непредсказуемый результат

Добавлено через 1 минуту
вернее черезчур предсказуемый либо 16777215(чёрный),либо 0

Добавлено через 1 час 10 минут
фух причину нашёл,объяснить не могу только догадки,дело было в trancparence=true, если выставить прозрачность у image и загрузить туда битмап затем попытаться сохранить попиксельно,цвета или прозрачный цвет будет другим буду рыть в этом направлении всем спасибо
0
 Аватар для ijonhson
47 / 47 / 15
Регистрация: 09.03.2011
Сообщений: 584
18.03.2013, 10:30  [ТС]
обратная проблема как вывести в изображение сохранённый битмап из массива цветов делаю так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
    int mas[786432];
    ifstream file1;
    file1.open("D:\\ij\\rb1.ij",std::ios::in|std::ios::binary);
    file1.read((char*)&mas,sizeof(mas));
     int i=2;
    for(int x=0;x<mas[0];x++)
     {
       for(int y;y<mas[1];y++)
       {
        Image1->Picture->Bitmap->Canvas->Pixels[x][y]=(TColor)mas[i];
        i++;
       }
     }
     Image1->Picture->Bitmap=bit1;
     Image1->Repaint();
всё компилируется на экране форма без image
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.03.2013, 10:30
Помогаю со студенческими работами здесь

Записать массив структур в типизированный файл
В общем нужно записать массив структур в типизированный файл, ну и потом соответсвенно достать тот же массив. void __fastcall...

Записать в файл двумерный целочисленный массив через TStringList
Вот это считывание с файла двумерного массива, скажите пожалуйста как таким же способом записать в файл двумерный массив? const int...

BMP, получить массив пикселей
Добрый день. Пишу дипломную работу, требуется помощь с программой. У меня есть изображение bmp. Мне из него нужно получить массив пикселей,...

Массив пикселей RGB в JPEG
Всем доброго времени суток! Пишу программу под МК на С/С++. На входе имею массив пикселей в формате RGB565 (2 байта/пиксель). На...

Дан файл с текстом. Записать в файл a0.txt слова, которые содержат цифру 0
от дано такое задание -Дан файл с текстом. Записать в файл a0.txt слова, которые содержат цифру 0, а в файл a1.txt - все остальные слова. ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru