Ciekawa sprawa z rysowaniem po płótnie + odświeżanie

0

Witam, piszę w następującej sprawie:

mam na formie image z załadowanym obrazkiem oraz suwak.
Zadaniem suwaka jest rysowanie na obrazku pionowej lini - która przyjmijmy na to, że ma zadania obrazować jakby ruch skanera...
Przesuwamy suwak w lewo, pasek rysuje sie odpowiednio z lewej na obrazku, z prawej analogicznie.

jak narysowac kreskę to wiem, canvas + drawline czy cos w tym stylu.

Pytanie brzmi jednak jak rysować z odświeżaniem oraz żeby wszystko było płynne, bez mrugania.

Chyba sprawę opisałem jasno, jest to dla mnie problem, liczę na pomoc, uwagi i propozycje rozwiązania problemu.

rysunek pomocniczy:
user image

1
  1. Tworzysz dwie bitmapy
  2. Po przesunięciu suwaka rysujesz całość na jednym, podmieniasz drugi obrazek na pierwszy, dajesz polecenie Invalidate (najlepiej podając prostokąt zawierający starą oraz nową pozycje kreski aby przerysowywało tylko fragment)
  3. W zdarzeniu OnPaint (TPaintBox) kopiujesz na ekran ten drugi obrazek.
0

OK działa, pasek sie przesuwa.
W pomysle powyzszym mozna pominac wykorzystanie TImage i dzialac z TPaintBoxem.
Jednak... co w przypadku gdy wczytywany obraz (jpg) jest bardo duzy?
Wtedy przydaloby sie go skalowac, albo dac zwykly Stretch.
Image ma taką opcję, ale jak skopiowac taki skurczony obrazek do bmp, zeby moc na nim operowac?

0

W pomyśle powyższym nie da się wykorzystać TImage.

http://msdn.microsoft.com/en-us/library/windows/desktop/dd145120%28v=vs.85%29.aspx

1 użytkowników online, w tym zalogowanych: 0, gości: 1