Главная страница
    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.067 c
15-1332015528
>|<
2012-03-18 00:18
2013.03.22
Взаимодействие приложений


2-1329158582
Hgd1
2012-02-13 22:43
2013.03.22
Delphi 2011 и русский текст


2-1335162233
jacksotnik
2012-04-23 10:23
2013.03.22
DBComboBox


2-1330408847
Delphi2007
2012-02-28 10:00
2013.03.22
перекомпиляция проекта на 64bit


15-1334294284
vajo
2012-04-13 09:18
2013.03.22
Маркировка HDD Seagate.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский