Hi,
ich sitz im moment vor dem Problem, dass ich 2 Abschnitte (beide durch ein Rechteck TRect beschrieben) miteinander vertauschen will. Das ganze bei einer einfachen, farbigen Bitmap.
Jetzt würde ich ja eigentlich sagen, dass das kein Problem ist, aber ich bekomm immer nur fehler zustande, der jedesmal so aussieht, dass er zwar die Bilder tauscht, gleichzeitig aber die Farben vom rest des bildes vertauscht.
Ich arbeite dabei mit canvas.copyrect().
Hat jemand eine Idee, woran das liegen könnte? Oder noch besser eine Lösung?
mfG
v!sum
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| bitmap1:=tbitmap.Create; bitmap1.Height:=groesse; bitmap1.Width:=groesse; bitmap2:=tbitmap.Create; bitmap2.Height:=groesse; bitmap2.Width:=groesse;
rect0:=rect(0,0,groesse,groesse); rect1:=rect(markiert*groesse,0,markiert*groesse+groesse,groesse); rect2:=rect(markiert*groesse-groesse,0,markiert*groesse,groesse);
bitmap1.Canvas.CopyRect(rect0,image1.Canvas,rect1); bitmap2.Canvas.CopyRect(rect0,image1.Canvas,rect2); image1.Canvas.CopyRect(rect2,bitmap1.canvas,rect0); image1.Canvas.CopyRect(rect1,bitmap2.canvas,rect0); |
Die Bitmap ist genau "groesse" hoch und vielfache davon breit. Es sollen immer nur Quadrate getauscht werden.
Moderiert von
Tino: Code- durch Delphi-Tags ersetzt.