AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Aus Intensität neue Farbe berechnen
Thema durchsuchen
Ansicht
Themen-Optionen

Aus Intensität neue Farbe berechnen

Ein Thema von glkgereon · begonnen am 14. Okt 2005 · letzter Beitrag vom 14. Okt 2005
Antwort Antwort
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#1

Re: Aus Intensität neue Farbe berechnen

  Alt 14. Okt 2005, 13:32
Und natürlich kein Pixels benutzen .
Oder ganz schnell :
Delphi-Quellcode:
// GR32-Lib, [url]www.graphics32.org[/url]
// Unit GR32_Blend
// "Note, that after using the Blend function, you have to call EMMS. Otherwise CPU will be unable to handle floating point instructions."

function M_BlendReg(F, B: TColor32): TColor32;
asm
  // blend foregrownd color (F) to a background color (B),
  // using alpha channel value of F
  // EAX <- F
  // EDX <- B
  // Result := Fa * (Frgb - Brgb) + Brgb
        db $0F,$6E,$C0 /// MOVD MM0,EAX
        db $0F,$EF,$DB /// PXOR MM3,MM3
        db $0F,$6E,$D2 /// MOVD MM2,EDX
        db $0F,$60,$C3 /// PUNPCKLBW MM0,MM3
        MOV ECX,bias_ptr
        db $0F,$60,$D3 /// PUNPCKLBW MM2,MM3
        db $0F,$6F,$C8 /// MOVQ MM1,MM0
        db $0F,$69,$C9 /// PUNPCKHWD MM1,MM1
        db $0F,$F9,$C2 /// PSUBW MM0,MM2
        db $0F,$6A,$C9 /// PUNPCKHDQ MM1,MM1
        db $0F,$71,$F2,$08 /// PSLLW MM2,8
        db $0F,$D5,$C1 /// PMULLW MM0,MM1
        db $0F,$FD,$11 /// PADDW MM2,[ECX]
        db $0F,$FD,$D0 /// PADDW MM2,MM0
        db $0F,$71,$D2,$08 /// PSRLW MM2,8
        db $0F,$67,$D3 /// PACKUSWB MM2,MM3
        db $0F,$7E,$D0 /// MOVD EAX,MM2
end;
Vielleicht kann das ja jemand auf "Intensität" statt Alphakanal von F umschreiben. Ich habe jedenfalls keine Ahnung von Assembler, von MMX noch weniger.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46 Uhr.
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