Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как перерисовать Picture в TImage? 
:(
    Опции темы
=Женек=
Дата 30.3.2014, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 548
Регистрация: 20.2.2005

Репутация: 1
Всего: 1



Господа, есть на форме TImage, установлена картинка (загружаю при редактировании формы, не программно).
Далее, через Image1->Canvas-> рисую всякие каракули. Получаются каракули на фоне картинки.
Как мне очистить каракули, оставив картинку? Если очистить Canvas (кстати как? Я не нашел) то картинка останется?
В принципе, я готов перерисовывать программно Picture, как это сделать, чтобы не обращаться заново к исходному файлу с картинкой?
PM MAIL   Вверх
=Женек=
Дата 31.3.2014, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 548
Регистрация: 20.2.2005

Репутация: 1
Всего: 1



Мегазадача?
PM MAIL   Вверх
baldina
Дата 1.4.2014, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 1
Всего: 101



Цитата(=Женек= @  30.3.2014,  19:48 Найти цитируемый пост)
перерисовывать программно Picture, как это сделать, чтобы не обращаться заново к исходному файлу

откуда-то данные для перерисовки должны взяться. если не из файла, то из памяти.
удобнее будет для начального отображения и перерисовки использовать один код (по WM_PAINT). картинку надо где-то хранить, естественный путь -  использовать ресурсы.
PM MAIL   Вверх
=Женек=
Дата 1.4.2014, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 548
Регистрация: 20.2.2005

Репутация: 1
Всего: 1



Цитата

). картинку надо где-то хранить,

Так ведь она где-то хранится? Я в редакторе ее раз загрузил, файл исходный удалил, а картинка осталась. В файле формы наверное.
PM MAIL   Вверх
Romikgy
Дата 2.4.2014, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



Код

Image->Picture->Bitmap->SaveToStream();
Image->Picture->Bitmap->LoadFromStream();



--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
=Женек=
Дата 2.4.2014, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 548
Регистрация: 20.2.2005

Репутация: 1
Всего: 1



А можно код не просто из вашей памяти, проверенный в компьютере? 
А то ведь я скопировал, вставил - не компилится. Да, я не совсем дурак, погуглил, нашел что нужно в скобки поставить предварительно объявленный TMemoryStream? вот так короче:
Код


TMemoryStream *St = new TMemoryStream ();

Image->Picture->Bitmap->SaveToStream(St);
Image->Picture->Bitmap->LoadFromStream(St);


Но ведь не работает собака, LoadFromStream превращает картинку в черный квадрат Малевича.

PM MAIL   Вверх
baldina
Дата 2.4.2014, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 1
Всего: 101



=Женек=, записать в файл, и сразу, не закрывая его (и ничего больше не делая) попытаться прочитать - что получишь?
PM MAIL   Вверх
=Женек=
Дата 2.4.2014, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 548
Регистрация: 20.2.2005

Репутация: 1
Всего: 1



Простите, что здесь я должен сохранить? Я ведь не на диск сохраняю, а как я понял в память.

PM MAIL   Вверх
Romikgy
Дата 2.4.2014, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



Код

TMemoryStream Position



--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
=Женек=
Дата 2.4.2014, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 548
Регистрация: 20.2.2005

Репутация: 1
Всего: 1



Господа, ну не мне сирому лентяю требовать от вас готового кода...

Но почему когда я лезу в какую-нибудь тему, где человек просит помощи, и я решаю помочь, то я нормально помогаю, не обрывками фраз, а так, чтобы человек скорейшим образом все понял и решил проблему?
Ваши обрывки фраз, которые я клещами из вас вытягиваю, не помогают ничем, и напоминают лепет Эллочки-людоедки.
И с трудом верится что вы не обязаны тратить свое время чтобы объяснять все на пальцах, вы уже потратили его куда больше, чем могли бы.

Видимо такое внутреннее устройство и отношение к окружающим.

Это сообщение отредактировал(а) =Женек= - 2.4.2014, 19:58
PM MAIL   Вверх
Romikgy
Дата 2.4.2014, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



Ув. =Женек=,  мое поведение зависит от того какие и как задан вопрос.... все ваши вопросы свободно решаются используя хелп или в крайнем случае гугл... вы же хотите именно готовый код под вашу задачу... когда я начинаю решать не понятную для меня задачу и нахожу ф-цию или метод или класс этого вполне достаточно что бы залезть в интернет и посмотреть по этим словам , в лучшем варианте хелп по продукту , вообще все видно залезть в исходники... однако намного проще залезть на форум и сказать дайте готовое... для таких и есть раздел на этом форуме http://forum.vingrad.ru/forum/Vingrad-help-center.html в котором делают все за вас... 
Цитата(=Женек= @  2.4.2014,  18:55 Найти цитируемый пост)
Видимо такое внутреннее устройство и отношение к окружающим.

такое отношение только ленивым людям которые пытаются выехать за счет других, в этом прошу простить меня.. такой уж есть


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
=Женек=
Дата 2.4.2014, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 548
Регистрация: 20.2.2005

Репутация: 1
Всего: 1



Уважаемый Ромик.
Если задача сложна и требует не только знаний, но и трудов, времени, тогда действительно я не имею морального права просить решить ее за меня. Тогда действительно мои просьбы о помощи являются желанием выехать за счет других.

Но как выяснилось моя проблема решается просто:
Код

      TMemoryStream *St = new TMemoryStream ();
      Screen2_Image->Picture->Bitmap->SaveToStream(St);
      St->Seek(0, 0); // нужно было просто добавить
      Screen2_Image->Picture->Bitmap->LoadFromStream(St);


нужно было просто добавить St->Seek(0, 0); , а Вам, если у Вас было желание помочь - просто написать эту строку.
Я не просил писать за меня какой-то сложный алгоритм - недостающая строка не является таковым.
Я не просил читать мне лекцию  - недостающая строка не является таковой.

Если вы знали решение проблемы, но молчали, то мне это непонятно.
Если вы не знали решение проблемы, то мне еще менее понятно, почему вы изображали "помощь".

А насчет гугла - глупо отсылать к нему, поиском все умеют пользоваться и коль уж я предпочел ждать ответа на форуме, чем искать, значит гугление не удалось.

Забейте сами свой совет "TMemoryStream position" и задайтесь вопросом - дают ли результаты представление о решение проблемы?
Постфактум я конечно понимаю что за связь между position и seek, но неужели нельзя было объяснить по-русски?

P.S. За отсыл к SaveToStream и LoadFromStream в любом случае спасибо.


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0775 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.