Thema: Delphi Kontrast per API ...

Einzelnen Beitrag anzeigen

Benutzerbild von Darty
Darty

Registriert seit: 8. Jun 2002
Ort: Kronau
731 Beiträge
 
#1

Kontrast per API ...

  Alt 17. Jun 2002, 13:33
Hi Leutz,

sicher erinnern sich einige noch daran dass ich damals gefragt habe wie ich den Kontrast per Buttom-Klick zwischen 2 Werten wechseln kann. Meine Registry Experimente etc schlugen fehl. Bis mich Christian Seehase (hoffe ich verwechsle jetzt niemand) mich auf die SDK verwies .. Ich wurde leider auch nicht fündig bzw ich verstand "PSDK" nicht ....
Nun bin ich durch ein Zufall auf diesen Code gekommen, der die Auflösung in zum Beispiel 800x600 wechseln kann. Mit dem Funktion Aufruf: change_resolution(800,600);
Die Funktion-Code ...
Code:
function change_resolution(width, height: word): boolean;
var lpDevMode: TDeviceMode;
begin
  Result := EnumDisplaySettings(nil, 0, lpDevMode);
  if Result then begin  
    lpDevMode.dmFields := DM_PELSWIDTH Or DM_PELSHEIGHT;
    lpDevMode.dmPelsWidth := width;  
    lpDevMode.dmPelsHeight := height;  
    Result := ChangeDisplaySettings(lpDevMode, CDS_UPDATEREGISTRY) = DISP_CHANGE_SUCCESSFUL;
  end;
end;
Aufgrund diese neue Kenntnisse (konnte die Codes noch nicht testen) suchte ich nach dem Wort DEVMODE und wurde zum Beispiel unter http://msdn.microsoft.com/library/de...tspol_8nle.asp fündig. Nur den Auszug aus dem Teil ...
Zitat:
dmICMIntent
Windows 95/98/Me, Windows 2000/XP: Specifies which color matching method, or intent, should be used by default. This member is primarily for non-ICM applications. ICM applications can establish intents by using the ICM functions. This member can be one of the following predefined values, or a driver defined value greater than or equal to the value of DMICM_USER.
Value
DMICM_ABS_COLORIMETRIC Color matching should optimize to match the exact color requested without white point mapping. This value is most appropriate for use with proofing.
DMICM_COLORMETRIC Color matching should optimize to match the exact color requested. This value is most appropriate for use with business logos or other images when an exact color match is desired.
DMICM_CONTRAST Color matching should optimize for color contrast. This value is the most appropriate choice for scanned or photographic images when dithering is desired.
DMICM_SATURATE Color matching should optimize for color saturation. This value is the most appropriate choice for business graphs when dithering is not desired.
Mich hatte nur stuzig gemacht, dass die Liste bei den Prining und Print Spooler zu finden war .. Denke aber dass dies auch allgeim für Display funktioniert.
Nun der Code den ich noch nicht getestet habe um den Kontrast zu verändern
Code:
function change_contrast(contrast: word): boolean;
var lpDevMode: TDeviceMode;
begin
  Result := EnumDisplaySettings(nil, 0, lpDevMode);
  if Result then begin  
    lpDevMode.dmICMIntent := DMICM_CONTRAST;
    lpDevMode.DMICM_CONTRAST := contrast;
    Result := ChangeDisplaySettings(lpDevMode, CDS_UPDATEREGISTRY) = DISP_CHANGE_SUCCESSFUL;
  end;
end;
Nun sollte man mit dem Aufruf change_contrast(100); sein Kontrast ändern können. Vielleicht testet es ja einer vor mir Der kann es gerne berichten, bzw vielleicht ist dies auch gar nicht möglich ...
Matthias Knebel
Mfg M. Knebel [-Darty-]
- Gehörlose Delphianer gibt es selten -
www.team-knebel.de
  Mit Zitat antworten Zitat