» »

[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
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
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 ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[c#] ukaz radirka

Oddelek: Programiranje
91134 (927) japol
»

C# - Flickering na paintbox kontroli

Oddelek: Programiranje
5696 (549) Monster
»

[C++] izris v [x,y]

Oddelek: Programiranje
131192 (894) DuleKrtola
»

[c#]4 v vrsto - padanje krogov

Oddelek: Programiranje
82016 (1848) VASkO
»

[c#] enostavna Igrca -> poraba procesorja 95%

Oddelek: Programiranje
192174 (1538) elKaktus

Več podobnih tem