Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

Перемещение изображения с использованием CopyRect   Найти похожие ветки 

 
alex300474   (2008-12-16 14:19) [0]

Пишу графический редактор, для перемещения изображения использую:
image2.Canvas.CopyRect(Rect(0,0,image2.Width,image2.Height),
       image1.Canvas,Rect(OriginX,OriginY,OriginX+image2.Width,OriginY+image2.Height));
При первом перемещении всё работает. При последующих, в сдвигаемой области отображается не всё выделенное изображение, причём размер изображения в сдвигаемой области ограничен размером выделенным при первом перемещении. Пример сдвига изображения повзаимствовал из примера: http://blackman.hoha.ru/primer/2204/paintbrush.zip . В этом примере таже проблемма.
Я потратил уже много времени, моей компетенции не хватает, прошу помощи.
Заранее благодарен,Алексей.


 
KilkennyCat ©   (2008-12-16 16:36) [1]

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


 
alex300474   (2008-12-16 19:26) [2]

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


 
Eraser ©   (2008-12-16 20:11) [3]

> [0] alex300474   (16.12.08 14:19)

лучше для перемещения используй отдельный компонент TImage, удобнее будет и возможностей больше.


 
KilkennyCat ©   (2008-12-16 23:06) [4]


> А каков механизм этого обрезания?


> OriginX,OriginY,OriginX+image2.Width,OriginY+image2.Height)


 
KilkennyCat ©   (2008-12-16 23:14) [5]

и вообще, странно все выглядит.
Создай два TRect, нормально пропиши вычисление их координат, тогда все и увидишь. В твоем оригинале думать сложно, особенно когда в имадже1 используются координаты имадже2... читабельный вариант будет выглядеть так:
ImageReceiver.Canvas.CopyRect(RectReceiver, ImageTransmitter.Canvas, RectTransmitter);
и ищи ошибку в вычислении RectTransmitter, локализация точнее и не надо будет грешить на CopyRect


 
Омлет   (2008-12-17 22:58) [6]

> Eraser ©   (16.12.08 20:11) [3]
> лучше для перемещения используй отдельный компонент TImage, удобнее будет и возможностей больше.

Я бы не советовал ))


 
Eraser ©   (2008-12-19 16:35) [7]

> [6] Омлет   (17.12.08 22:58)

аргументируй.
использование TImage это по-сути [5] доведенный до совершенства и автоматизированный.



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.062 c
15-1353834526
dummy_user
2012-11-25 13:08
2013.03.22
Как сделать сопроводительную документацию?


4-1264158728
maxistent
2010-01-22 14:12
2013.03.22
Ошибка при блокировке компа (Window+L)


15-1339221071
MBo
2012-06-09 09:51
2013.03.22
Не бриться!


15-1344537298
kilkennycat
2012-08-09 22:34
2013.03.22
Бибик


2-1330577950
теркин
2012-03-01 08:59
2013.03.22
Фильтрация дочернего набора данных





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский