OpBitmap mit Formaten Version 1.0

Zur Vorstellung von Komponenten und Units für Lazarus
Antworten
t-z
Beiträge: 49
Registriert: So 22. Nov 2009, 18:12
OS, Lazarus, FPC: Windows 7 Professional 64Bit / Kubuntu 10.04 (Lazarus 0.9.28.2 64 Bit FPC 2.2.4)
CPU-Target: Intel i5-760

Re: OpBitmap mit Formaten Version 1.0

Beitrag von t-z »

Ich habe jetzt mal versuch ein Benchmark für das Laden zu schreiben (Der Code reiht sich in den Code des ersten Benchmarks ein - siehe hier):

Code: Alles auswählen

type
  pBitmap=^TBitmap;
  pCanvasOPBitmap=^TCanvasOPBitmap;
 
//... usw.
 
procedure ScaleBitmap(Bitmap,Value:pBitmap;var retwidth,retheight:Integer);
var x,y:Integer;
begin
  Bitmap^.Canvas.Brush.Color:=clblack;
  Bitmap^.Canvas.FillRect(Rect(0,0,Bitmap^.width,Bitmap^.height));
  if not Assigned(Value^) then exit;
  if(Value^.height=0)or(Value^.width=0)then exit;
  retwidth:=Bitmap^.height*Value^.Width div Value^.Height;
  if retwidth<Bitmap^.width then retheight:=Bitmap^.height else
    begin
      retheight:=Bitmap^.width*Value^.Height div Value^.Width;
      retwidth:=Bitmap^.width;
    end;
  x:=(Bitmap^.width-retwidth)div 2;
  y:=(Bitmap^.height-retheight)div 2;
  Bitmap^.Canvas.StretchDraw(Rect(x,y,x+retwidth,y+retheight),Value^);
end;
 
procedure ScaleOPBitmap(Bitmap,Value:pCanvasOPBitmap;var retwidth,retheight:Integer);
var x,y:Integer;
begin
  Bitmap^.Canvas.Brush.Color:=clblack;
  Bitmap^.Canvas.FillRect(Rect(0,0,Bitmap^.width,Bitmap^.height));
  if not Assigned(Value^) then exit;
  if(Value^.height=0)or(Value^.width=0)then exit;
  retwidth:=Bitmap^.height*Value^.Width div Value^.Height;
  if retwidth<Bitmap^.width then retheight:=Bitmap^.height else
    begin
      retheight:=Bitmap^.width*Value^.Height div Value^.Width;
      retwidth:=Bitmap^.width;
    end;
  x:=(Bitmap^.width-retwidth)div 2;
  y:=(Bitmap^.height-retheight)div 2;
  Value^.Canvas.Resample(retwidth,retheight);
  Bitmap^.Canvas.CopyRect(Rect(x,y,x+retwidth,y+retheight),Value^.Canvas,Rect(0,0,Value^.Width,Value^.Height));
end;
 
 
procedure TForm1.Button2Click(Sender: TObject);
const w = 2000;
const h = 2000;
var
  SrcIntfImg: TLazIntfImage;
  T1,T2: TBitmap;
  OP,OP1: TCanvasOPBitmap;
  fOP :TOPPicture;
  s, e: Cardinal;
  File1:string;
  hw,hh:Integer;
  ImgHandle,
  ImgMaskHandle: HBitmap;
begin
 
  File1:=ExtractFilePath(Application.ExeName)+'Test1.bmp';
 
  Image1.Picture.Bitmap.Width:=w;
  Image1.Picture.Bitmap.Height:=h;
 
  //OpBitmap
  OP := TCanvasOPBitmap.Create;
  OP1 := TCanvasOPBitmap.Create;
  fOP := TOPPicture.Create;
 
  OP1.Width:=w;
  OP1.Height:=h;
 
  s := GetTickCount;
  fOP.LoadFromFile(File1);
  fOP.Bitmap.PixelFormat:=pf32bit;
  OP:=fOP.Bitmap;
  ScaleOPBitmap(@OP1,@OP,hw,hh);
  lazbridge32.OpBitmapPaint32(OP1,Image1.Canvas,0,0);
 
  e := GetTickCount - s;
  Edit1.Text:=InttoStr(e);
 
 
  OP.Free;
  Op1.Free;
 
  //TBitmap
 
  T1:=TBitmap.Create;
  T2:=TBitmap.Create;
  SrcIntfImg:=TLazIntfImage.Create(0,0);
 
  T2.Width:=w;
  T2.Height:=h;
 
  s := GetTickCount;
 
  T1.LoadFromFile(File1);
  ScaleBitmap(@T2,@T1,hw,hh);
 
  SrcIntfImg.LoadFromBitmap(T2.Handle,T2.MaskHandle);
 
  SrcIntfImg.CreateBitmaps(ImgHandle, ImgMaskHandle, false);
  T2.Handle := ImgHandle;
  T2.MaskHandle := ImgMaskHandle;
 
 
  Image1.canvas.Draw(0,0,T2);
 
  e := GetTickCount - s;
  Edit2.Text:=InttoStr(e);
 
  T1.Free;
  T2.Free;
 
  Edit3.Text:='';
  Edit4.Text:='';
  Edit5.Text:='';
 
end;


Ich weiß natürlich nicht, ob der OP-Code optimal ist. Wenn nicht, dann schlag bitte entsprechende Optimierungen vor.

Dies sind die Werte:
OPBitmap:843ms
TBitmap:109ms
Zuletzt geändert von t-z am Fr 28. Jan 2011, 15:25, insgesamt 1-mal geändert.

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: OpBitmap mit Formaten Version 1.0

Beitrag von theo »

Naja, das ist ein Fall, wo OpBitmap nicht unbedingt Vorteile bringt, da du eigentlich keine Pixelmanipulationen machst.

Das Laden des Bildes ist wahrsch. nicht schneller bei OpBitmap und Zeit dürfte v.a. in Resample verloren gehen.
Während TBitmap.Canvas für StretchDraw wahrsch. einfach das Betriebssystem bemüht, macht OpBitmap ein "detalierteres" Resampling.

Wie du siehst kann man prinzipiell auch den Filter bestimmen:

Code: Alles auswählen

procedure TOPBitmapCanvas.Resample(NewWidth, NewHeight: integer);
begin
  if NewWidth < fBitmap.Width then
    Stretch(NewWidth, NewHeight, sfHermite, DefaultFilterRadius[sfHermite], fBitmap) else
    Stretch(NewWidth, NewHeight, sfMitchell, DefaultFilterRadius[sfMitchell], fBitmap);
end;


Damit könnte man experimentieren. Mögliche Filter sind:
TResamplingFilter = (sfBox, sfTriangle, sfHermite, sfBell, sfSpline, sfLanczos3, sfMitchell);

Aber wenn es nur um den gezeigten Fall geht, musst du OpBitmap nicht unbedingt bemühen.

t-z
Beiträge: 49
Registriert: So 22. Nov 2009, 18:12
OS, Lazarus, FPC: Windows 7 Professional 64Bit / Kubuntu 10.04 (Lazarus 0.9.28.2 64 Bit FPC 2.2.4)
CPU-Target: Intel i5-760

Re: OpBitmap mit Formaten Version 1.0

Beitrag von t-z »

Ich habe die Konvertierung von TBitmap in TLazIntfImage vergessen und nun angepasst. Mir ging es darum herauszufinden, wie sich der Ladevorgang im Rahmen meines Projekts auswirkt. Ich werde mal schauen, wie sich das mit den anderen Resample-Filtern verhält. Außerdem schaue ich mal, wo die Rechenzeit zuzurechnen ist und wie sich das bei einer reinen Konvertierung nach dem Einpassen verhält.

Das Problem liegt wirklich in der Skalierung. 765ms entfallen auf diese. 47ms dauert das Zeichnen auf die Canvas und 15ms das Laden der Bitmap.

Zur Kombination aus OpBitmap und TBitmap: Diese benötigt nur 62ms (gegenüber 109ms für die Kombination aus TBitmap und TLazIntfImage). Daher präferiere ich die Kombination von OpBitmap mit TBitmap für meine Zwecke.

Einen ernsthaften Einfluss auf die Geschwindigkeit konnte ich zwischen den verschiedenen Einstellmöglichkeiten beim Skalieren über die OpBitmap nicht feststellen. Die Zeiten bewegten sich zwischen 765,s und 967ms.

Nur der Vollständigkeit halber: 47ms dauert das Laden bei TBitmap, 78ms das Skalieren und 16ms die Umwandlung in TLazIntfImage.
Des Weiteren dauert die Umwandlung von TBitmap nach OpBitmap 16ms, und das zeichnen auf die Canvas von der OpBitmap aus 15ms.

(nicht wundern, wenn die Zahlen sich genau nicht zusammenrechnen lassen, denn sie stammen von verschiedenen Versuchsdurchführungen)

Frusti
Beiträge: 10
Registriert: Mo 10. Jun 2013, 12:30

Re: OpBitmap mit Formaten Version 1.0

Beitrag von Frusti »

Geht das eigentlich nur mir so?
Da lade ich mir hier so ein prima Paket herunter (aktuell Version 1.7), navigiere zu "Demo" um mal zu schauen, was dieses Paket kann, klicke auf "Compilieren" - und ersticke in Fehlermeldungen!

Ist das bei Open Source eigentlich grundsätzlich verboten, funktionierende Demos mitzuliefern?

gocher
Beiträge: 298
Registriert: Di 23. Nov 2010, 23:41
OS, Lazarus, FPC: Ubuntu/Win, Lazarus trunk, FPC trunk
CPU-Target: 32Bit/64Bit
Wohnort: Geldern
Kontaktdaten:

Re: OpBitmap mit Formaten Version 1.0

Beitrag von gocher »

Frusti hat geschrieben:Geht das eigentlich nur mir so?
Da lade ich mir hier so ein prima Paket herunter (aktuell Version 1.7), navigiere zu "Demo" um mal zu schauen, was dieses Paket kann, klicke auf "Compilieren" - und ersticke in Fehlermeldungen!

Ist das bei Open Source eigentlich grundsätzlich verboten, funktionierende Demos mitzuliefern?


Geht das nur mir so, oder kommst es Euch anderen auch so vor als würde Frusti in seinem nächsten Eintrag mit einem Kostenpflichtigen Lösungsvorschlag herüber kommen?
Der auch nicht perfekt ist und vor allem für intelligente Entwickler nicht zu verbessern ist!

Also jeder macht sich so seine eigen Gedanken wie er ein Problem löst, ich glaube jemand der eine fertige Lösung sucht und nicht dazu in der Lage ist auch noch ein wenig selbst Hand an zu legen der ist hier sicherlich falsch und sicherlich auch kein guter Programmierer!
Für Windows sage ich zu diesem Thema "GDI+", da gibt es so einiges in Pascal, aber um es anzuwenden muss man sich auch noch ein paar Gedanken machen, ohne geht es leider (oder vielleicht Gott sei Dank) nie!
MfG Gocher
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: OpBitmap mit Formaten Version 1.0

Beitrag von pluto »

Ist das bei Open Source eigentlich grundsätzlich verboten, funktionierende Demos mitzuliefern?

Das habe ich mich auch schon öfter gefragt(Allgemein). Ich finde die tollsten Projekte(Ein Beispiel hätte ich sogar, siehe unten. ), wo dann nicht mal eine Beschreibung beiliegt. Dann muss man sich den Code anschauen und das dauert seine Zeit.

Gerade im OpenSoruce Bereich musst du sehr viel selbst Lernen. Ich zum Beispiel, wollte ein Beispiel ausprobieren, in einer Sprache, die ich nicht spreche, in C und dann sind die Kommentare in Englisch. Das erste Teil vom Beispiel gehen Problemlos, nur der Zweite Teil nicht. Nach Stunden meine ich zu wissen:
Der Code ist gar nicht dafür ausgelegt gewesen. Mit ein paar Änderungen, bin ich zum Gewünschtem Ziel gekommen.
Das Tolle Handbuch war natürlich im Englisch, aber ich habe den Text entsprechend Interpretiert und Personen, die ich gefragt habe, meinten Ebenfalls das ich mit meiner Vermutung RICHTIG liege.

Entweder drei Leute haben den Text, Falsch verstanden oder aber der Ersteller vom Text war nicht genau Genug an dieser Stelle.

Aber sowas triffst du recht Häufig, wo ein Beispiel nicht geht. Hin und wieder reichen ein paar Änderungen, mal musst du etwas mehr machen.

Ob man jetzt ein guter Programmierer ist oder nicht, spielt hier keine große Rolle, sondern viel mehr, den Willen, sich damit zu befassen und vorallem, du brauchst SEHR, SEHR, SEHR viel GEDULD. Das ist das wichtigste. Mal eben, schnell geht nicht immer bzw. zuverlässig.
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: OpBitmap mit Formaten Version 1.0

Beitrag von Christian »

Manchmal frag ich mich seit wann es Leuten verboten ist ihr Hirn einzuschaten bevor sie die Klappe aufreissen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

gocher
Beiträge: 298
Registriert: Di 23. Nov 2010, 23:41
OS, Lazarus, FPC: Ubuntu/Win, Lazarus trunk, FPC trunk
CPU-Target: 32Bit/64Bit
Wohnort: Geldern
Kontaktdaten:

Re: OpBitmap mit Formaten Version 1.0

Beitrag von gocher »

Also ich sehe es so, unter Delphi habe ich in der Enterprise Version Komponenten von Drittanbietern mitgeliefert bekommen (ohne Quelltext) die habe ich dann genutzt und in der nächsten Version, gab es gerade diese Komponenten nicht mehr! Das hat mich dazu gebracht quasi nur noch Komponenten mit Quelltext (Open Source) zu nutzen, die sind dann häufig mal für Delphi mal Free Pascal und für die unterschiedlichsten Versionen. Also muss ich fast immer Hand anlegen, da sich die Entwicklungsumgebungen (und damit meine ich besonders Lazarus) ständig weiter entwickeln kann man dann noch nicht einmal davon ausgehen, das sie dann funktionstüchtig bleibt!
Genau so verhält es sich mit den Beispielen, aber man sucht ja nicht umsonst nach einer Komponente, man will sich Zeit ersparen und da schaut man doch dann sowieso mal in den Code und vergleicht die einzelnen Komponenten, oder?

Hier geht es z.B. um OpBitmap, gerade Hierzu gibt es schon einiges an Code, sicher nicht für alles die beste Komponente das wird auch nicht behauptet, aber für einige Aufgaben sicherlich ok und funktionstüchtig!

Meistens sind die Entwickler von Freeware sogar dankbar, wenn es Rückmeldungen von Anwendern gibt! Also ich habe lieber eine Komponente mit offenen Quellen und ein paar Problemen beim Kompilieren, als eine Komponente die sofort funktioniert und dann wenn es darauf ankommt nicht zu erweitern ist oder in den Tiefen sich doch ein paar Fehler verstecken die aber erst bei komplexen Problemen auftreten!
MfG Gocher
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: OpBitmap mit Formaten Version 1.0

Beitrag von theo »

Das kompiliert schon, wenn man die letzte Version nimmt und sich an die Anweisung hält (lies erste Seite).

http://www.theo.ch/lazarus/opbitmap64.zip
opbitmapforlazcompat.lpk installieren.

Der Frage von Frusti: "Ist das bei Open Source eigentlich grundsätzlich verboten, funktionierende Demos mitzuliefern?" kann ich allerdings nicht beantworten, da ich nicht weiss, ob das verboten ist.

Frusti
Beiträge: 10
Registriert: Mo 10. Jun 2013, 12:30

Re: OpBitmap mit Formaten Version 1.0

Beitrag von Frusti »

Nun ich denke, wenn ich ein Paket veröffentliche _zusammen_ mit einer Demoanwendung, dann darf so eine Fehlermeldung wie xxx ist keine Eigenschaft der Komponente (aus diesem Paket) einfach nicht vorkommen.

Also, wenn der Autor schon keine Lust hat, sein Produkt vor Auslieferung zu testen, dann habe ich auch keine.

@Theo:
Die Seite 1 habe ich schon gelesen:
Update 5.2.09
Auf vielfachen Wunsch ;-) hier eine 64bit Version von OpBitmap
http://www.theo.ch/lazarus/opbitmap64.zip

Allerdings habe ich mich dann gefragt, was ich mit einer 64 Bit-Version soll.

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: OpBitmap mit Formaten Version 1.0

Beitrag von theo »

Frusti hat geschrieben:Also, wenn der Autor schon keine Lust hat, sein Produkt vor Auslieferung zu testen, dann habe ich auch keine.


Ist überhaupt kein Problem. Das "Produkt" ist auch nicht für Frustis geeignet. :lol:

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: OpBitmap mit Formaten Version 1.0

Beitrag von Christian »

Vllt solltest 300 Eur für nehmen, dann hött er garantiert nix gesagt weil er bei einem so professionellen Produkt den Fehler bei sich vermutet hätte.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Frusti
Beiträge: 10
Registriert: Mo 10. Jun 2013, 12:30

Re: OpBitmap mit Formaten Version 1.0

Beitrag von Frusti »

theo hat geschrieben:
Frusti hat geschrieben:Also, wenn der Autor schon keine Lust hat, sein Produkt vor Auslieferung zu testen, dann habe ich auch keine.


Ist überhaupt kein Problem. Das "Produkt" ist auch nicht für Frustis geeignet. :lol:

Siehst du Theo, meines Erachtens ist das völlig die falsche Herangehensweise: Nur weil etwas Open Source ist, oder sogar umsonst _muß_ es nicht zwangsläufig Schrott sein. Deshalb meine Frage oben, ob es da eventuell eine "Verpflichtung" gibt, den Kunden irgendwie "herauszufordern".
Es ist schon ein gewaltiger Unterschied ob ich etwas im stillen Kämmerlein für mich selbst entwickele, oder ob ich damit an die Öffentlichkeit gehe. Im 2. Fall gilt: "Der Kunde ist König".
Falls es Dich tröstet: Ich nehme Dein Produkt ja nicht. Allerdings verbreite ich Dein Produkt auch nicht weiter, mache auch keine Reklame dafür, und beteilige mich nicht an Bugfixes - also nichts von dem, was Open Source ausmacht. In der Zwischenzeit habe ich etwas anderes. Ich weiß nicht, ob es besser ist als Dein Paket, aber es ist zumindest sauber dokumentiert.

Christian hat geschrieben:Vllt solltest 300 Eur für nehmen, dann hött er garantiert nix gesagt weil er bei einem so professionellen Produkt den Fehler bei sich vermutet hätte.

Du kennst sicher den Satz: "Diese Software ist nur dann umsonst, wenn Dir Deine Zeit nichts Wert ist"

Aber gut, unsere Meinungen darüber, was ein gutes Produkt ausmacht (egal ob umsonst oder kostenpflichtig) gehen halt auseinander. Dann will ich Euch in Eurer Frickelbude auch nicht länger stören. Open Source Software gibt es wie Sand am Meer und "Eine echte Herausforderung für den Kunden " ist nicht wirklich das Alleinstellungsmerkmal, was ich brauche.

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: OpBitmap mit Formaten Version 1.0

Beitrag von theo »

Frusti hat geschrieben:. Deshalb meine Frage oben, ob es da eventuell eine "Verpflichtung" gibt, den Kunden irgendwie "herauszufordern".
Es ist schon ein gewaltiger Unterschied ob ich etwas im stillen Kämmerlein für mich selbst entwickele, oder ob ich damit an die Öffentlichkeit gehe. Im 2. Fall gilt: "Der Kunde ist König".


Falsche Sichtweise. Du bist nicht Kunde.

http://de.wikipedia.org/wiki/Kunde hat geschrieben:Ein Kunde ist eine Person oder eine Institution, die ein offensichtliches Interesse am Vertragsschluss zum Zwecke des Erwerbs eines Produkts oder einer Dienstleistung gegenüber einem Unternehmen oder einer Institution zeigt.


Man kann durchaus Quellcode für Interessierte bereitstellen, ohne dass man jeden Anfänger "mitnehmen" muss.
Der grösste Teil des frei erhältlichen Quellcodes ist so und ich bin froh darum, dass er zugänglich ist.

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: OpBitmap mit Formaten Version 1.0

Beitrag von pluto »

Ich versuche gerade, in Zusammenhang mit dem Pacman Clone, die Aktuelle 64 Bit Version von OpBitmap zu verwenden. Jedoch scheint es einige "eigenartige" Probleme zu geben, in den Code von OpBitMap:
1. In der Unit ftbresenham
in der Funktion Plot4EllipsePoints,
sind die Kometarblöcke Fehlerhaft:

Code: Alles auswählen

 
procedure Plot4EllipsePoints(X,Y : longint);
begin
  if Canvas.Brush.Style=bsSolid then
  begin
  Canvas.MoveTo(CenterX+X-1, CenterY+Y-1);
  Canvas.LineTo(CenterX-X+1, CenterY+Y-1);
  Canvas.MoveTo(CenterX-X+1, CenterY-Y+1);
  Canvas.LineTo(CenterX+X-1, CenterY-Y+1);
  end;
{
  Canvas.Pixels[CenterX+X, CenterY+Y] := clyellow; {point in quadrant 1}

  Canvas.Pixels[CenterX-X, CenterY+Y] := clgreen; {point in quadrant 2}
  Canvas.Pixels[CenterX-X, CenterY-Y] := clblue; {point in quadrant 3}
  Canvas.Pixels[CenterX+X, CenterY-Y] := PenCol; {point in quadrant 4}
} // Meldung vom FPC imglibs/ftbresenham.pas(257,1) Fatal: illegal character "'}'" ($7D)
  Canvas.Pixels[CenterX+X, CenterY+Y] := PenCol; {point in quadrant 1}
  Canvas.Pixels[CenterX-X, CenterY+Y] := PenCol; {point in quadrant 2}
  Canvas.Pixels[CenterX-X, CenterY-Y] := PenCol; {point in quadrant 3}
  Canvas.Pixels[CenterX+X, CenterY-Y] := PenCol; {point in quadrant 4}
 
{
  Fill33(CenterX+X, CenterY+Y); {point in quadrant 1}

  Fill33(CenterX-X, CenterY+Y); {point in quadrant 2}
  Fill33(CenterX-X, CenterY-Y); {point in quadrant 3}
  Fill33(CenterX+X, CenterY-Y); {point in quadrant 4}
} // Meldung vom FPC imglibs/ftbresenham.pas(257,1) Fatal: illegal character "'}'" ($7D)
end;
 

 
Wenn ich die einfach mit einem // Auskometiere komme ich etwas weiter:
Bis in die Methode TOPBitmapCanvas.CopyRectPlain32SwapRGB.
Da heißt es dann auf einmal: imglibs/opbitmap.pas(2494,50) Error: Illegal type conversion: "QWord" to "Pixel32"
In der zweiten Forschleife:

Code: Alles auswählen

 
   for y := 0 to Hei - 1 do
      for x := 0 to Wid - 1 do
      begin
      Color:=Cardinal(sparr^[(y + S.Top) * swid + (S.Left + x)]);
     // Genau bei dieser Zuweisung
      dparr^[(y + D.Top) * dwid + (D.Left + x)]:=Pixel32(((Color and $FF0000) shr 16) +
       ((Color and $00FF00)) +
       ((Color and $0000FF) shl 16)+
       ((Color and $FF000000)));
 
     //  dparr^[(y + D.Top) * dwid + (D.Left + x)]:=Pixel32(ByteSwapColor(Cardinal(sparr^[(y + S.Top) * swid + (S.Left + x)])));
      end;
 

Weiter bin ich bis jetzt noch nicht, und ich habe mir die Aktuelle 64 Bit Version Runtergeladen. Ich hoffe du kannst damit etwa Anfangen....

Edit01: Ich habe die Funktion einfach mal Auskomentiert, dann hänge ich jedoch in der "GraphicEx" Unit fest.
Alle ASM Blöcke werden beanstandet. "imglibs/GraphicEx.pas(687,22) Error: Unknown identifier "EDX"
So lauten die Meldungen, in etwa.
MFG
Michael Springwald

Antworten