Einzelnen Beitrag anzeigen

Benutzerbild von gordon freeman
gordon freeman

Registriert seit: 28. Jun 2003
Ort: Gelsenkirchen
337 Beiträge
 
Delphi 2005 Personal
 
#1

Bild ohne zu zeichnen bearbeiten - geht nicht mit Canvas

  Alt 30. Nov 2005, 16:25
Hi Leute,
ich habe auf meiner Form ein Image-Objekt mit einem Bild, dass der User hineingeladen hat. In FormCreate wird bereits ein Objekt der Klasse "TBildbearbeiter" erstellt. Dieses Objekt besitzt den Dienst "SchwarzWeissBild". Diesem Dienst soll nun das Bild übergeben werden. Er macht ein Schwarzweißbild daraus und gibt das Bild zurück. Ich hatte es also so versucht:

Delphi-Quellcode:
//in der Klasse TBildbearbeiter
function SchwarzWeissBild(pBild: TCanvas):TCanvas;
begin
//Das Bild wird verändert
end;


//In der Klasse TForm
//...
Bildbearbeiter:= TBildbearbeiter.Init;
Image1.Canvas := Bildbearbeiter.SChwarzWeissBild(Image1.Canvas);
//...
Dann bekomm ich den Fehler "Einer Nur-Lesen-Eigenschaft kann kein Wert zugewiesen werden."

Dann hab ich versucht das Bild per Hand zu kopieren, hat aber nicht hingehauen, er hat einfach das Bild unverändert angezeigt, hab es mit folgendem Beispiel versucht:

Delphi-Quellcode:
var x,y : integer;
bild : TCanvas;
begin
  bild := Image1.Canvas;
  bild.floodfill(1,1,clblue,fsborder);
  for x:= 0 to Image1.wisth-1 do
    for y:= 0 to Image1.Height-1 do
      Image1.Canvas.Pixels[x,y] := Bild.Pixels[x,y];
end;
Eigentlich sollte das weiße eingefügte Bild danach doch blau sein, oder? Auf jeden Fall zeigt er das weiße Bild im Original wieder genau so an.

Was mach ich falsch
  Mit Zitat antworten Zitat