Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Перемещение изображения с использованием 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 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.059 c
15-1342251556
MastaK
2012-07-14 11:39
2013.03.22
Баг или не баг?


2-1342772214
Scott Storch
2012-07-20 12:16
2013.03.22
Завершить работу приложения


15-1348811854
MonoLife
2012-09-28 09:57
2013.03.22
Подскажите по проектировке таблиц БД.


2-1334310302
leklerk
2012-04-13 13:45
2013.03.22
Как сделать обработчик события в консоли?


15-1330707938
ClawClaw
2012-03-02 21:05
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский