Главная страница
    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.061 c
15-1347788277
Pavia
2012-09-16 13:37
2013.03.22
Посоветуйте СУБД


15-1334134947
xss22
2012-04-11 13:02
2013.03.22
Утечки памяти в TStringList::GetText()


15-1354088508
asail
2012-11-28 11:41
2013.03.22
Win7 32bit и 8гиг оперативки...


2-1338267500
SHerloK
2012-05-29 08:58
2013.03.22
Tchar и колесико


15-1348514300
Дмитрий С
2012-09-24 23:18
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский