Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi schnellerer Zugriff auf Tbitmap (https://www.delphipraxis.net/34862-schnellerer-zugriff-auf-tbitmap.html)

cumi 8. Dez 2004 16:46

Re: schnellerer Zugriff auf Tbitmap
 
in welcher unit ist die Combine(X, Y, W: TColor32) enthalten?

dizzy 8. Dez 2004 17:02

Re: schnellerer Zugriff auf Tbitmap
 
Laut der Hilfe-Datei (*mitdemzaunwink* ;)) in der "GR32_Blend".

cumi 8. Dez 2004 17:13

Re: schnellerer Zugriff auf Tbitmap
 
supi, habs jetzt geschafft, allerdings mit der blendfunktion.... laut hilfe passt die noch genauer zu meinem problem... oder ist die viel langsamer?

dizzy 8. Dez 2004 17:38

Re: schnellerer Zugriff auf Tbitmap
 
Die könnte u.U. sogar schneller sein. Das weiss ich grad nicht so genau.
Der Unterschied zwischen den beiden ist ja:
Combine mischt 2 Farben (incl. Alpha-Komponente) im Verhältnis W : (1-W)
Blend mischt 2 Farben (excl. Alpha-Komponente), dafür in einem Verhältnis wie es die Alpha-Komponente angibt.

Lösen lässt sich dein Problem prinzipiell mit beiden :).


\\edit: Diese ungewollten Grinser immer :D

cumi 8. Dez 2004 17:54

Re: schnellerer Zugriff auf Tbitmap
 
stimmt, jo naja ich machs jetzt mit blend... ist spezifisch für mein Problem direkter...
Und ich muss sagen, diese GrafikUnit ist wirklich ganz extrem leistungsstark!

cumi 8. Dez 2004 18:18

Re: schnellerer Zugriff auf Tbitmap
 
wenn isch schon am fragen bin, dann frag ich doch gleich weiter, denn ich bin schon bei meinem nächsten Problem angelangt. Gibt es eine Funktion, welche einem die Komplementärfarbe (Gegenfarbe) einer TColor32 berechnet?

dizzy 8. Dez 2004 21:01

Re: schnellerer Zugriff auf Tbitmap
 
Soooo schlecht ist die Hilfe zur G32 doch garnet :zwinker:

Invert() bzw. InvertRGB() invertieren dir ein ganzes TBitmap32. Einmal mit, und einmal ohne den Alphakanal mit zu invertieren.

Ansonsten ist zu einer Farbe "r, g, b" die Farbe "255-r, 255-g, 255-b" invers. Also so einfach selber zu machen, dass die G32 da nicht mal eine separate Funktion für bietet ;).

\\edit: Die Funktion ColorSub() könnte dir dabei helfen. Wenn du:
Delphi-Quellcode:
NewColor := ColorSub(Color32(255,255,255), Color(255,0,0));
bekommst du die Komplementärfarbe zu Rot. Sollte schneller sein, als es von Hand zu berechnen. Einfach die zu invertierende Farbe von Weiss subtrahieren.

Eichhoernchen 9. Dez 2004 22:01

Re: schnellerer Zugriff auf Tbitmap
 
*sabber* Fraktale, das ist eins der geilsten sachen die es gibt.

hab auch mal so nen Programm geschrieben was mandelbrote usw. backt.


Mit der TBitmap methode scanline kannste ne mandelbrotberechnung mit Pixles[x,y] so um die 10 seckunden verschnellern!

Auf delphi-source.de gibt es beispiele zu scanline

Delphi Source Scanline

Hoffe das hilft dir! Mir hat es das!

dizzy 9. Dez 2004 23:08

Re: schnellerer Zugriff auf Tbitmap
 
Öhm, glaub mir: Die G32 ist u.U. sogar noch schneller, und vor allem um Längen komfortabler als das Pointerrumgeschubse mit Scanline. Hab's bevor ich die G32 kannte auch mit Scanline gemacht, aber der Umstieg war mehr als richtig und einfach.
Zumal man mit der G32 auf einmal einen riesen Haufen an Möglichkeiten mehr hat: Layered Bitmaps, eingebautes Antialiasing mit verschiedenen Algos (man kann sogar Pixel auf Float-Koordinaten setzen, und die G32 übernimmt die Verteilung auf die 4 realen Pixel), volle Alphakanalunterstützung, haufenweise Optimierungen mit MMX, SSE(2), etc., und vieles vieles mehr.
Wer viel Grafik mit Delphi macht, dem kann ich die G32 einfach nur wärmstens an's Herz legen - Scanline ist nen Weisenkind dagegen ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz