Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 13.08.2019
Сообщений: 2
Builder 6

Компонент Image

13.08.2019, 18:22. Показов 2847. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе утро.
Есть такой компонент Image; в котором свойством "Picture" задаётся исходное изображение, во время работы программы изображение меняется: из файла (LoadFromFile), из ресурса ... и т.д.
Вопрос: Как (какой командой) после всех этих операций вернуть изображение прописанное в свойстве "Picture"?
P.S.
Кода нет программа ещё не написана.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.08.2019, 18:22
Ответы с готовыми решениями:

Компонент Image мигает
Написал игру полноэкранную короче проблема: машина проезжает когда машина доходит до конца экрана или начинает выходит на экран то он...

Как на компонент Image вывести значения из StringGrid?
Подскажите пожалуйста. У меня проблема дан StringGrid c 1000 значениями и дан Image на котором строится гистограмма по значениям из...

BMP изображение из памяти в компонент Image, не пойму почему не работает
В bufrd уже есть изображение, проверял записывая в файл. Graphics::TBitmap* gBitmap = new Graphics::TBitmap; ...

5
Модератор
 Аватар для D1973
9915 / 6452 / 2455
Регистрация: 21.01.2014
Сообщений: 27,386
Записей в блоге: 3
13.08.2019, 23:47
Цитата Сообщение от MegaLamer Посмотреть сообщение
после всех этих операций
После каких? Всех этих LoadFromFile() / LoadFromStream() ? Ну так запоминайте тот битмап, который там был при старте программы - и всего делов: когда надо - просто подгрузите его обратно в Image...
Только зачем этот гемор??? Может проще можно задачу решить?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
14.08.2019, 09:17
Цитата Сообщение от MegaLamer Посмотреть сообщение
Как (какой командой) . . . вернуть изображение
Относительно команды - сильно сомневаюсь. А вот у класса TStream имеются функции WriteComponent(), ReadComponent(). Если из ресурсов программы вытянуть блок TFORM, извлечь оттуда все данные компонента TImage.Image1 к примеру, запихнуть найденное в поток, обновить компонент - ReadComponent - до девственного состояния и не получить при этом приступ мигрени от всех этих упражнений - то да, возможно.

Добавлено через 3 минуты
D1973, сохранение битмапа ничего не даст при вариантах типа картинки jpg, png и ряда других. Тем и усложняется возвращение к первозданному виду именно картинки.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33377 / 21501 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
14.08.2019, 09:54
Лучший ответ Сообщение было отмечено MegaLamer как решение

Решение

Цитата Сообщение от MegaLamer Посмотреть сообщение
во время работы программы изображение меняется
Вот перед тем, как оно меняется в первый раз (или вообще при старте программы), я бы просто его сохранил в TMemoryStream (да, да, через Picture->SaveToStream), а потом, при необходимости восстановить, обратным LoadFromStream все великолепно восстановится...

Если добавить класс-перехватчик для TImage, и в него добавить TMemoryStream*, то каждому изображению будет соответствовать свой поток, очень удобно...
0
0 / 0 / 0
Регистрация: 13.08.2019
Сообщений: 2
14.08.2019, 16:41  [ТС]
Большое спасибо. Как водится: вместе с ответом появился и вопрос.
1) Будет ли изображение, хранящееся в потоке и сохранённое при старте программы, занимать дополнительно место в теле программы (увеличит ли размер программы)?
2) Где будут хранится изображения/потоки перехваченные после если изображения подгружались из файла?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33377 / 21501 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
14.08.2019, 16:45
Размер самой программы - нет (увеличение на 4 байта для каждого компонента TImage - неcерьёзно), будет увеличен размер памяти, который использует программа...

Второй вопрос непонятен. Поток, который MemoryStream, хранится в памяти. Там и будет храниться всегда.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.08.2019, 16:45
Помогаю со студенческими работами здесь

Условие в цикле if (существует компонент) либо if (выделено место под компонент)
условие в цикле if (существует компонент) либо if (выделено место под компонент) TListBox * lbx2; //обьявил локально ...

Пересекаются ли Image с другим Image?
Как узнать пересекаются ли два Image на форме?

Как вставить Jpeg в Image? И какие форматы можно вставить в Image?
Подскажите как вставить Jpeg в Image? И какие форматы можно вставить в Image? Добавлено через 53 секунды вставка в image из...

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

Наложение Image на Image
Ребят. Такая проблема. У меня рандомным образом задаются координаты для 5 компонентов Image Builder C++. Как мне сделать проверку, и...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru