AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Grauton Kalkulation

Ein Thema von EWeiss · begonnen am 27. Mär 2012 · letzter Beitrag vom 28. Mär 2012
Antwort Antwort
Iwo Asnet

Registriert seit: 11. Jun 2011
313 Beiträge
 
#1

AW: Grauton Kalkulation

  Alt 27. Mär 2012, 16:03
"inline" bedeutet nur, das der Compiler versucht, den Funktionsquelltext direkt anstelle des Aufrufes in den Code zu kompilieren. Das erspart Aufruf und Rücksprung, ergo einige CPU-Zyklen. Das Programm wird größer, aber auch schneller.

Soweit ich mich erinnere, habe ich den Grauwert immer durch

Delphi-Quellcode:
Function GetGray(color : TColor) : TColor;
begin
  v := (GetRValue(color) + GetGValue(color) + GetBValue(color)) div 3;
  Result := RGB(v,v,v);
end;
hinbekommen
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: Grauton Kalkulation

  Alt 27. Mär 2012, 16:10
Danke euch allen werde mal schaun was die beste Variante ist.
Mein letztes problem weiss nicht wie ich ptPixels als Array auslegen soll.

Kann mir nicht vorstellen dass das Array sich im ^UINT befindet. Oder?

Einzigste was mir jetzt einfällt die pPixels als Dynamisches Array auszulegen of Cardinal
und die neue länge anhand von nSize zuzuweisen.

gruss

Geändert von EWeiss (27. Mär 2012 um 16:15 Uhr)
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

AW: Grauton Kalkulation

  Alt 27. Mär 2012, 16:17
Um die Helligkeit einer Farbe zu ermitteln werden die Rot, Grün und Blau Anteile unterschiedlich bewertet um dem menschlichen Auge möglichst nahe zu kommen.

Mein Code verwendet dazu die Faktoren 61(rot), 174(grün) und 21(blau):
Delphi-Quellcode:
function Intensity(Color: TColor): Integer;
begin
  Color := ColorToRGB(Color);
  Result := GetBValue(Color) * 21 // Blue
    + GetGValue(Color) * 174 // Green
    + GetRValue(Color) * 61; // Red
  Result := Result shr 8;
end;


function GreyColor(Color: TColor):TColor;
var
   i : Integer;
begin
   i := Intensity(Color);
   Result := RGB(i, i, i);
end;
Die Faktoren 54(rot), 182(grün) und 19(blau) aus dem Codebeispiel im Beitrag#1 dürften ähnliche Ergebnise bringen.
Wenn man alle Farbanteile mit 1/3 einrechnet dürfte das Ergebnis leicht unnatürlich aussehen.
Andreas
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: Grauton Kalkulation

  Alt 27. Mär 2012, 16:24
Zitat:
@shmia Die Faktoren 54(rot), 182(grün) und 19(blau) aus dem Codebeispiel im Beitrag#1 dürften ähnliche Ergebnise bringen.
Wenn man alle Farbanteile mit 1/3 einrechnet dürfte das Ergebnis leicht unnatürlich aussehen.
Deshalb habe ich auch obigen link zum Color FAQ addiert.
Ein ungefährer wert käme auch nicht in frage

@NamenLozer
Zitat:
Pixels: array of cardinal;
Ahh dann war meine Annahme letztendlich doch korrekt Danke
Zitat:
Hoffe es ist klar
Gut erklärt besser gehts nimmer

Zitat:
Einzigste was mir jetzt einfällt die pPixels als Dynamisches Array auszulegen of Cardinal
und die neue länge anhand von nSize zuzuweisen.

gruss

Geändert von EWeiss (27. Mär 2012 um 16:28 Uhr)
  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 02:24 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