scanline

Rund um die LCL und andere Komponenten
Antworten
erichW
Beiträge: 2
Registriert: Sa 28. Jan 2012, 15:44

scanline

Beitrag von erichW »

Hallo,

nachdem Michael "Pluto" mir so schnell beim Richedit / Richmemo geholfen hat, habe ich das nächste Problem bei Delphi/Lazarus.
Für schnelle komplizierte Bearbeitungen von 24-Bit RGB-Bitmaps nutzte ich oft, gerne und erfolgreich die Zeigeroperation "scanline".
Wie kann ich möglichst einfach derartige Delphi-Projekte in Lazarus übertragen, so, dass sie auch noch ohne Geschwindigkeitsverlust laufen.
Wer kann mir helfen, eine entsprechend geeignete Komponente zu finden, installieren, einzubinden und zu nutzen.

Vielen Dank
Erich

Teekeks
Beiträge: 359
Registriert: Mi 27. Mai 2009, 20:54
OS, Lazarus, FPC: OpenSuse11.4 x86 (Lazarus: 0.9.30 FPC 2.4.2)
CPU-Target: x86
Wohnort: Cottbus

Re: scanline

Beitrag von Teekeks »

Ein TBitmap besitzt ein Canvas.
TCanvas kennt auch unter Lazarus Scanline.

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

Re: scanline

Beitrag von theo »

Teekeks hat geschrieben:TCanvas kennt auch unter Lazarus Scanline.


Ach ja? Seit wann? Mein Lazarus 0.9.31 r35294M FPC 2.6.0 x86_64-linux-gtk 2 kennt das nicht.

Teekeks
Beiträge: 359
Registriert: Mi 27. Mai 2009, 20:54
OS, Lazarus, FPC: OpenSuse11.4 x86 (Lazarus: 0.9.30 FPC 2.4.2)
CPU-Target: x86
Wohnort: Cottbus

Re: scanline

Beitrag von Teekeks »

Echt nicht? Moment. Dann muss ich nachsehen.
Ich war mir eigentlich sicher.
Dann erst mal sorry für die Fehlinformation:(

Edit: Stimmt. Das war das TLazIntfImage welches das kann.
Weiteres dazu hier: http://wiki.lazarus.freepascal.org/Developing_with_Graphics#Working_with_TLazIntfImage.2C_TRawImage_and_TLazCanvas

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

Re: scanline

Beitrag von theo »

erichW hat geschrieben:Wie kann ich möglichst einfach derartige Delphi-Projekte in Lazarus übertragen, so, dass sie auch noch ohne Geschwindigkeitsverlust laufen.


Eine Möglichkeit ist mein gutes altes OpBitmap http://www.theo.ch/lazarus/opbitmap64.zip
Geht auch schnell, aber es ist natürlich nicht das gleiche Prinzip dahinter wie bei Delphi.
Aber portieren sollte schnell gehen.

Christian
Lazarusforum e. V.
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: scanline

Beitrag von Christian »

W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: scanline

Beitrag von MAC »

Ganz einfach, das Normale TImage benutzt TCanvas und ein Scanline ist dort aus Günden der Platformunabhängigkeit nicht so einfach möglich (haut mich wenn ich falsch liege).
Es gibt aber etliche von Usern gemachte Klassen mit denen man mit Scanline Arbeiten kann.
Dazu zählen OPBitmap, TLazIntfImage oder TBGRABitmap. Ich selbst benutze letzeres (weis aber nicht ob es tatsächlich das beste ist...)
Zudem besitzen die Meisten Klassen einen Alpha Channel für Transparenz.
Auf jedenfall würd ich mich unter dem link den Christian gepostet hat informieren...

Code: Alles auswählen

Signatur := nil;

Antworten