![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| Darksquall |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 22.1.2004 Где: Москва Репутация: нет Всего: 4 |
Как считаете почему не работает вот это?
ошибка не вылетает но копирования в image3 не происходит. правда ошибка вылетает здесь
но работает это.
как еще можно скопировать один битмап в другой? p.s. Bmp1:=bmp2; а также Assign () не подходят. |
||||||
|
|||||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: нет Всего: 146 |
интересно почему? 1. попиксельно можно 2. память скопировать -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Darksquall |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 22.1.2004 Где: Москва Репутация: нет Всего: 4 |
Romik можно попиксельно,как угодно только что бы быстро.
А эти способы я так понимаю не копируют,а всего лишь указатели меняют в памяти, а при изменении памяти во всех переменных тоже будет изменение картинки, а мне этого не нужно. Битмап покрутил немного вроде так или я не прав? |
|||
|
||||
| Kesh |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2488 Регистрация: 31.7.2002 Где: Германия, Saarbrü cken Репутация: 1 Всего: 54 |
-------------------- ![]() |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Darksquall, Конечно! после записи в поток внутренний указатель потока смещается в конец. Рекомендуется его перед любой записью и чтением устанавливать в нуль.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Darksquall |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 22.1.2004 Где: Москва Репутация: нет Всего: 4 |
Благодарю, совсем работа замучала, забыл что Position в стриме в нуль устанавливать нужно :-)
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
Без всяких первых попыток. Assign - метод унаследованный от TPeristent. Производит копирование всех property из одного объекта в другой. (Естественно, объекты должны быть совместимы от младшего к старшему. Но совместимость не касается данной темы.) |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Snowy, но изображение является указателем на область памати не знаю как копируется свойство
property ScanLine[Row: Integer]: Pointer, но подозреваю, что копируется только указтель на память, и вместе с тем счетчик ссылок увеличится на единицу, и только при попытке изменить изображение программа должна делать действительную копию(токова концепция Delphi). Но это лишь мое предположение... -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
Сам битмап является пропертёй.
Соответственно при Assign у приёмника создается новый TBitmap. А содержимое изображения переносится уже при помощи WinAPI (вероятно через BitBlt или т.п. ). Это уже забота класса - перенести корректно все данные. Вот, кстати из описаловы:
|
|||
|
||||
| Alexeis |
|
||||||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
Snowy, чтож с этим не поспоришь
Или в этом случае тоже самое? Добавлено @ 11:26 Цитирую код VCL метода assign TBitmap
Это очень похоже на простое копирование внутреннего адреса изображения. FImage объявлен как объект класса TBitmapImage дальше идет
Это сообщение отредактировал(а) alexeis1 - 4.5.2006, 11:29 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||||
|
|||||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 18 Всего: 484 |
Хм. И правда.
Оказывается там внутрях хитрая система референсов. Правда незнаю, насколько она оправдана. Но ты прав... |
|||
|
||||
![]()
|
| Правила форума "Delphi: Звук, графика и видео" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |