Problem z obróbką obrazu

0

Mam pytanie co powinienem zrobić zeby mi to w końcu zaczęło działać?
Problem mam nastepujący:

Wstęp:
Wczytuję obrazek (bmp) do Imaga i sobie robie z niego negatyw za pomocą procedury którą tu przytaczam.

procedure TForm1.Button2Click(Sender: TObject);
begin
 if iNegatyw(Image1.Picture.Bitmap)<>0 then
    ShowMessage('Błąd!!!');
 Image1.Refresh;
end;

function iNegatyw(_bmp:TBitmap):integer;
var
 x,y:integer;
 l:PByteArray;
begin
 if _bmp.PixelFormat=pf8bit then
    begin
     for y:=0 to _bmp.Height-1 do
         begin
          l:=_bmp.ScanLine[y];
          for x:=0 to _bmp.Width-1 do
              l[x]:=not l[x];

         end;
    begin
     result:=-1;
     Exit;
    end;
 result:=0;
end;

Problem pojawia się wtedy gdy chcę robić na <ort>bieŻąco (Boże, widzisz takie błędy i nie grzmisz)</ort> negaty z filmu wyświetlanego na komponencie Panel.
(wiem ze mogę skopiować ramkę Canvasa z parametrami Panel.CleintRect ale to dalej nie jest Bitmapa którą mogę obrabiać za pomocą funkcji)

i w związku z tym moje pytanie brzmi :
Gdzie powinienem zmienić bo mam tak

Image1.picture.bitmap.canvas.copyrect(Dest,TempCanvas,Source);
gdzie SOURCE:=Panel1.ClientRect;
Dest:=Image1.ClientRect;
TempCanvas:=copy canvasa panela
Mam nadzieje ze nie zamotałem za bardzo jak moze mi ktoś wskazać coś konkretnie to z góry dzieki Pozd Seba

// Na przyszłość używaj tagu delphi - do wyświetlania kodu... - detox

0
twoja_bitmapa.Assign(canvas_panela);
0

ok zrobiłem tak :

Image1.Picture.Bitmap.Height:=Paintbox1.Height;
Image1.Picture.Bitmap.Width:=Paintbox1.Width;
Temp_Canvas:=Paintbox1.Canvas;

Image1.Picture.Bitmap.Assign(Temp_Canvas);
//WG RADY twoja_bitmapa.Assign(canvas_panela);

begin
if Image1.Picture.Bitmap.PixelFormat=pf8bit then
begin
for y:=0 to Image1.Picture.Bitmap.Height-1 do
begin
Linia:=Image1.Picture.Bitmap.ScanLine[y];
for x:=0 to Image1.Picture.Bitmap.Width-1 do
Linia[x]:=not Linia[x];

     end;

i wysyakuje błąd :

Cannot Assign a TControlCanvas to a TBitmap hmm
cholerka cos braak mi pomysłów :-*

0

zrobiłem kopię z paintabox'a (umieściłem go równo pod Panelem) bo on ma właściwość Canvas a panel nie

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