Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/40: Рейтинг темы: голосов - 40, средняя оценка - 4.55
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309

Сохранить Image->canvas в файл

10.10.2012, 14:22. Показов 8429. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Подскажите с решением, пожалуйста!
Напрямую нельзя сохранить? нужно в bitmap сохранить канву, а его уже в файл? как это реализовать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
void __fastcall TForm1::Button7Click(TObject *Sender)
{  //получим значения
String Path;
AnsiString Path2;
Graphics::TBitmap *a=new Graphics::TBitmap;
for (size_t i=5;i<6;++i)    //ходим по файлам      11
    {
    ProgressBar1->Position=i;
     Path="D:\\"+String(i)+".txt";
  std::fstream input; //для обхода файлов
  input.open(Path.c_str());
    std::string line;
    std::vector<float> db;  //объявим вектор под значения из строки файла
    while(getline(input,line)) //цикл чтения из файла и расчеты в нем
            {
     db.reserve(800);         //резерв места
     std::stringstream ss(line.c_str());
     std::copy(std::istream_iterator<float> (ss), std::istream_iterator<float> (), std::back_inserter(db) );
       //тут дб заполнен строкой
       int x=25;
       Image1->Canvas->FillRect(Image1->Canvas->ClipRect);   //очистим
       Image1->Canvas->MoveTo(x,Image1->Height-db[0]*2);
           for (size_t n=0; n<db.size(); ++n)
                {
            Image1->Canvas->LineTo(x,Image1->Height-db[n]*2);
            ++x;
            Image1->Canvas->Refresh();
            Path2= "D:\Graph\\" +String(n);
            Image1->Repaint();
              }
            db.clear();
            }//переход на след стр
    }//переход на следующий файл
}
Хочу цикл сохранения сделать,что -то вроде
C++
1
а->SaveToBitmapFilе(Path2);
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.10.2012, 14:22
Ответы с готовыми решениями:

Как несколько image сохранить как одну картинку?
имеется несколько image наложенных друг на друга, на них картинки. Как это всё сохранит как одну картинку?

Запись рисунка Image1->Canvas в файл
Есть на форме компонент Image1. Рисую на нём изображение и записываю в bmp-файл. Файл создаётся, но пустой. Где я ошибаюсь? void...

Сохранение Image в файл
Подскажите,плиз, как можно объект Image, помещенный на форме, сохранить в файл?

4
Заблокирован
10.10.2012, 16:08
А в чем собственно проблема?
C++
1
2
3
4
Image1->Picture->Bitmap->Width = 120;
Image1->Picture->Bitmap->Height = 120;
Image1->Picture->Bitmap->Canvas->Rectangle(10,10,20,20);
Image1->Picture->Bitmap->SaveToFile("1.bmp");
Получаем изображение созданное с помощью Canvas.
А если нужно сохранять результаты созданные на других элементах, то копируем область в битмап, а затем сохраняем.
1
35 / 35 / 10
Регистрация: 24.11.2011
Сообщений: 309
10.10.2012, 19:39  [ТС]
Спасибо!
А можно пояснить разницу
C++
1
Image1->Picture->Bitmap->Canvas
и
C++
1
Image1->Canvas
0
Заблокирован
10.10.2012, 19:57
Принципиальной разницы, для данного случая - нет, однако лучше использовать обращение к непосредственному классу, с которым идет работа. Тем более, если планируется производить множество операций прорисовки, то лучше сперва это делать в памяти на отдельном экземпляре TBitmap, а уже потом, при необходимости - выводить на экран.

PS. Насколько мне помнится, в BCB6 были более "жесткие правила" касательно прорисовки на компоненте Image. К примеру, вначале нужно было создать экземпляр класса изображения, прежде чем приступить к прорисовке, иначе получите ошибку. Поэтому не могу сказать, что во всех IDE данные методы можно назвать аналогичными.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
12.10.2012, 00:01
в ини есть savebinary
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.10.2012, 00:01
Помогаю со студенческими работами здесь

Сохранение двух image в один файл
Всем привет. На форме есть два image, есть простой способ сохранить их в один файл в том виде в каком они отображаются на форме ( те один...

Кнопка: сохранить данные с Edit, скопировать файл (картинку) и переименовать новый файл из одного из полей edit
Помогите дописать для кнопки такое: по состоянию компонента CheckBox копировать определеный файл и давать ему название например из поля...

Сохранить файл в папку, а ссылку на его в БД, открыть файл по ссылке из Бд
Здравствуйте. Не получается сохранить файлы в папку Data (c записью ссылки на него в БД),а затем его открыть по данной ссылке. Задача в...

Сохранить фото из Canvas в файл
К примеру у меня есть в Canvas картинка . Как ее сохранить в какой либо файл или что бы потом можно было вставить ее в документ . Можно ли...

Как сохранить содержимое canvas в *.bmp файл
Подскажите, пожалуйста, как сохранить содержимое canvas в bmp файл? я понимаю, что для этого нужно получить Image c canvasа, но как?


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru