![]() |
AW: Farbwert zu Dezimal
kommst du denn jetzt in beide else zweige?
gruss |
AW: Farbwert zu Dezimal
Ja, aber mit dem Fadingwert von 0.32 häufiger in den else Zweig.
|
AW: Farbwert zu Dezimal
Zitat:
Das Array als Integer definiert. a als Byte _a als SmallInt komme nie über 127 weder mit fade über 0.5 noch mit drunter. Ich versteh es nicht. gruss |
AW: Farbwert zu Dezimal
Je näher fading zur 1 rückt desto häufiger geht es in den else Zweig.
Bei d = 153 (f=0.6) kann _alpha nicht mehr größer als 127 werden. alpha max = 255 und _alpha = alpha - d Wenn man mit der Hilfsvariablen arbeitet muss alpah noch in der Berechnung angepasst werden.
Delphi-Quellcode:
Grüße
if _alpha > 127 then
imgSpectrum[x,y] := c or (((alpha - d) -256) shl 24) else imgSpectrum[x,y] := c or ((alpha - d) shl 24); Klaus |
AW: Farbwert zu Dezimal
Hallo EWeiss
in welcher Procedure befindet sich der hier diskutierte Code? In procedure TSpectrum.Release;? Falls Ja: Früher hast du dort SpectrumData2D[] verwendet und jetzt imgSpectrum[]? Oder ist es eine andere Procedure - und wenn Ja, wo findet man diese in deinem Code? Wenn es TSpectrum.Release; ist: SpectrumData2D bzw. jetzt imgSpectrum muss natürlich am Eingang zu deiner Procedure mit Daten gefüllt sein, sonst machen die Rechnereien ja gar keinen Sinn. Zum Testen: Wie früher erwähnt: Du könntest sämtliche VB6 Prozeduren, welche etwas rechen mit dem gleichen Input abfüllen wie deine jeweils entsprechende Delphi Prozedur und dann prüfen was am Ausgang rauskommt. Nur wenn beide Versionen die gleichen Werte liefern, bist du am sicher, dass dein Programm das tut, was das Original schön längst macht ;-). Alles wird gut. V.a. wichtig ist, dass du Datentypen nicht mischst. Sonst meckert Delphi (zurecht) noch lange rum. Mindestens in deiner zuerst veröffentlichten Version sind in TSpectrum.Release; sämtliche Werte im Array SpectrumData2D immer 0 (Null). Trotzdem malt dein Programm Dinge auf den Schirm. Da stimmt also etwas beim Ablauf nicht. Ob in deiner Version auch alle Elemente 0 sind kannst du ja leicht testen, indem du
Delphi-Quellcode:
einfügst.
assert( SpectrumData2D[x, y] = 0, 'Oh, nicht Null ;-)' );
|
AW: Farbwert zu Dezimal
Und noch ein mal und zum letzten Mal ;-): Die Unterscheidung a > 127 ist im Delphi Code nicht notwendig, da wir im Gegensatz zum VB Code ohne Vorzeichen arbeiten.
|
AW: Farbwert zu Dezimal
Zitat:
Muss das nochmal genau gegen prüfen. Dann muss die Vorgehensweise bei den anderen auch im etwa so sein. Danke dir für die Geduld. Zitat:
Zitat:
Du musst Release von der Zeichenroutine komplett trennen. es befindet sich dazwischen und manipuliert die Pixel mit denen die aus den Effekten errechneten werden. So etwas wie ein Plugin innerhalb Draw! gruss |
AW: Farbwert zu Dezimal
ein letztes update
alpha ist wieder ein Byte (ich fühl mich wohler damit)
Delphi-Quellcode:
Grüße
for y:= 0 to h do
for x := 0 to w do begin alpha := ((imgSpectrum[x,y] and $FF000000) shr 24) and $FF; c := imgSpectrum[x,y] and $FFFFFF; if d > alpha then alpha := 0 else alpha := alpha - d; if alpha > 127 then imgSpectrum[x,y] := c or ((alpha -256) shl 24) else imgSpectrum[x,y] := c or (alpha shl 24); end; Klaus |
AW: Farbwert zu Dezimal
@Klaus danke für deine Mühe und Einsatz mir zu helfen.
Habe leider noch ein anderes Problem um das zuverlässig testen zu können. Wenn es dann mal funktioniert gibt es ein Update und die Meldung warum es nicht ging. Vielleicht können dann andere davon etwas abschauen die ähnliche Probleme haben. gruss |
AW: Farbwert zu Dezimal
Delphi-Quellcode:
Das Zeichnen der "Spektrum Daten" funktioniert.
Was soll nicht stimmen ? Ist schon gut so.
Du musst Release von der Zeichenroutine komplett trennen. es befindet sich dazwischen und manipuliert die Pixel mit denen die aus den Effekten errechneten werden. So etwas wie ein Plugin innerhalb Draw! Was in der mir vorliegenden Version nicht funktioniert Zitat:
Aufgrund von deinem Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:20 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