Forum » Programiranje » [C#, .net] zamikanje slike
[C#, .net] zamikanje slike
atasmrk ::
Pozdrav
Ukvarjam se z risanjem direktno na kontrolo. V Bitmap objektu offscreenBitmap imam sliko, Graphics objekt offscreenGraphics pa je narejen iz tega bitmapa. Delujeta pa kot backbuffer, na sliko nekaj narisem in jo potem prikazem. Overridal sem OnPaint metodo
Potem pa hocem sliko zamakniti za par pikslov. V ta namen v OnPaint metodo dodam spodnjo vrstico.
Vendar stvar ne spila. Nic se ne zgodi. Kaj sem zgresil?
Ukvarjam se z risanjem direktno na kontrolo. V Bitmap objektu offscreenBitmap imam sliko, Graphics objekt offscreenGraphics pa je narejen iz tega bitmapa. Delujeta pa kot backbuffer, na sliko nekaj narisem in jo potem prikazem. Overridal sem OnPaint metodo
protected override void OnPaint(PaintEventArgs e) { e.Graphics.DrawImage(this.m_offscreenBitmap, 0, 0); }
Potem pa hocem sliko zamakniti za par pikslov. V ta namen v OnPaint metodo dodam spodnjo vrstico.
this.m_offscreenGraphics.DrawImage(this.m_offscreenBitmap, 11, 0);
Vendar stvar ne spila. Nic se ne zgodi. Kaj sem zgresil?
atasmrk ::
Se dopolnilo.
Ce pa offscreenGraphics objektu pripnem matriko za translacijo
pa slika se zamakne, ampak samo enkrat. Ce klicem DrawImage veckrat, je slika zamaknjena samo enkrat.
Ce pa offscreenGraphics objektu pripnem matriko za translacijo
Matrix m = new Matrix(); m.Translate(11,0); //translacija za 11 pikslov v desno offscreenDrawing.Transform = m; m.Dispose(); //to lahko naredim, ker se v graphics objektu naredi kopija m-ja
pa slika se zamakne, ampak samo enkrat. Ce klicem DrawImage veckrat, je slika zamaknjena samo enkrat.
vojko20 ::
Mogoče zaradi tega ker vsakič na novo ustvariš Matrix (m) objekt. Probaj to dat v kakšen form create event recimo.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [c#] ukaz radirkaOddelek: Programiranje | 1122 (915) | japol |
» | C# - Flickering na paintbox kontroliOddelek: Programiranje | 689 (542) | Monster |
» | [C++] izris v [x,y]Oddelek: Programiranje | 1179 (881) | DuleKrtola |
» | [c#]4 v vrsto - padanje krogovOddelek: Programiranje | 1999 (1831) | VASkO |
» | [c#] enostavna Igrca -> poraba procesorja 95%Oddelek: Programiranje | 2168 (1532) | elKaktus |