![]() |
FMX Camera Component als Lichtsensor (Lux)
Hallo,
weiss jemand wie man die Helligkeit in Lux mit Firemonkey misst? Habe ein paar Hinweise gefunden, aber es kommt immer Lux=0 raus: procedure TFotoapp.ButtonLichtMessungClick(Sender: TObject); Var Sensormanager: Tsensormanager; i : Integer; Sensors: TSensorArray; fSensor: TCustomLightsensor; begin Sensormanager:=Tsensormanager.Current; Sensormanager.Activate; Sensors:=Sensormanager.GetSensorsByCategory(Tsenso rcategory.Light); if length(Sensors)>0 then Begin fsensor:=TCustomlightSensor(Sensors[0]); //fsensor.OnDataChanged ??; Showmessage(fstrj(fsensor.Lux,5)); // fstrj konvertiert von Double auf String end; end; Ciao Stephan |
AW: FMX Camera Component als Lichtsensor (Lux)
Naja, die FMX Kaperakomponente dürfte eine ziemlich vereinfachte Abstraktion des benutzten Kamera-APIs sein.
Ich fürchte, dass du da um direkte nutzung des entsprechenden OS APIs wohl nicht herumkommen wirst. |
AW: FMX Camera Component als Lichtsensor (Lux)
Hast Du das SensorDemo ausprobiert ?
Wenn dein Handy einen Sensor hat dann sollte damit ein Wert kommen. Nicht unbedingt jedes Handy hat so einen Sensor drin. Generelly kann man auch mit anderen Apps testen, ![]() Es gab in der Vergangenheit schon Fälle wo keines der Programme die Sensoren ansprechen könnte, da ist nicht immer Delphi dran Schuld. Ich würde mich auf den "Lux-Wert" aber nicht verlassen, das ist mehr oder weniger nur ein unkalibrierter Lichtindex ( heller / dunkler). |
AW: FMX Camera Component als Lichtsensor (Lux)
Hallo,
auf meinem Moto G8 habe ich auch andere Apps mit Lux-Messung installiert. Alle gehen 100% einwandfrei! Nur bei meine FMX-App kommt immer 0.0 raus, und OnChanged wird nie getriggert. Beim Code habe ich mich an der Sensor-Demo orientiert. Nur Lux ist eben immer 0.0. Irgendwie dachte ich es liegt daran, dass .start ausgeführt werden muss, jedoch ist .start nicht verfügbar für den Lichtsensor. Hat jemand noch eine Idee, oder kann es selber mal ausprobieren? Eigentlich sollte jedes Android-Handy so einen Lichtsensor haben, nur wie geht der unter FMX? Ciao Stephan |
AW: FMX Camera Component als Lichtsensor (Lux)
Hast du vielleicht noch ein älteres Delphi?
![]() Ich habe auch mal mit einem HTC10 (Android 8) und 10.4 probiert. Damit bekomme ich auch immer 0. |
AW: FMX Camera Component als Lichtsensor (Lux)
Also ich habe gerade mal, nach längerer Zeit, das SensorInfo Demo ausprobiert.
Es funkktioniert erstmal nicht, aber da ist ein kleiner Bug drin
Delphi-Quellcode:
Nach der Änderung wird bei mir (Samsung S9) ein Wert angezeigt,
procedure TfrmAboutSensors.ListBoxItemClick(Sender: TObject);
begin if Sender is TListBoxItem then begin FActiveSensor := TCustomSensor(TListBoxItem(Sender).Data); if (FActiveSensor <> nil) and (not FActiveSensor.Started) then begin {$IFDEF ANDROID} if FActiveSensor.Category = TSensorCategory.Location then begin PermissionsService.RequestPermissions([JStringToString(TJManifest_permission.JavaClass.ACCESS_FINE_LOCATION)], procedure(const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>) begin if (Length(AGrantResults) = 1) and (AGrantResults[0] = TPermissionStatus.Granted) then FActiveSensor.Start else TDialogService.ShowMessage('Location permission not granted'); end) end else //<== 02.01.21 Add begin //<== FActiveSensor.Start; //<== end; {$ELSE} FActiveSensor.Start; {$ENDIF} end; end; FShowInfo := True; end; vorher war es 0. Ist ja auch klar, wenn der Sensor nur bei Location gestartet würde. |
AW: FMX Camera Component als Lichtsensor (Lux)
Interessante Lösung.
Hast du schon geprüft, ob das schon als Bug in QP eingetragen ist und falls nicht es mit samt deinem Lösungsansatz eingetragen? |
AW: FMX Camera Component als Lichtsensor (Lux)
|
AW: FMX Camera Component als Lichtsensor (Lux)
Ja dankesehr, neues Jahr, zu wenig Zeit ...
Es wäre wirklich sinnvoll wenn Emba die Demos vor jeder neuen Verson mal wirklich Testen/Updaten würde. So kann man bei Neueinsteigern sicher besser punkten, wenn es mal out-of-the-box laufen würde. Die Demos einer Software sind immer der erste Anlaufpunkt für mich. |
AW: FMX Camera Component als Lichtsensor (Lux)
Kommando zurück, falsch geschaut.
|
AW: FMX Camera Component als Lichtsensor (Lux)
Zitat:
...was wurde falsch geschaut? |
AW: FMX Camera Component als Lichtsensor (Lux)
Zitat:
|
AW: FMX Camera Component als Lichtsensor (Lux)
Irgendwie bezweifle ich, dass ein Kamerasensor als vollwertiger Luxmeter taugt. Genau genommen schließt sich das sogar physikalisch aus. Zumindest wenn ich mal von klassischer Fotografie ausgehe, verwendet man den Luxmeter um zu bestimmen, welche Vorsatzfilter bzw. Blendeneinstellung man verwenden muss, damit der Sensor nicht in die Sättigung geht. Möglicherweise haben manche Smartphones einen Hardware-Luxmeter? Zumindest mein Uralt-Laptop EliteBook 2540p hat einen. Mit einem gewöhnlichen Kamerasensor dürfte das unmöglich sein, zumindest im High-Lux-Bereich (z.B. direktes Sonnenlicht)
|
AW: FMX Camera Component als Lichtsensor (Lux)
Zitat:
"Früher" hattest du einen Helligkeitssensor und einen Näherungssensor in der Front neben der Frontkamera verbaut, wenn du dir jetzt aktuelle Smartphones anschaust, hast du Fullscreen mit der Nodge für die Kamera und nicht mehr. Bedeutet, das die Kamera den Näherungssensor und den Helligkeitssensor übernimmt, was man auch gut testen kann. |
AW: FMX Camera Component als Lichtsensor (Lux)
Würde mich wirklich interessieren wie gut das klappt. Schon mal einen richtigen Luxmeter daneben gelegt? Insbesondere bei Tageslicht im Sommer?
|
AW: FMX Camera Component als Lichtsensor (Lux)
Zitat:
Ich hätte gedacht das die "besseren" Geräte einen speziellen LUX-Sensor benutzen, da gibt es jede Menge Sensoren für diesen Zweck. Vielleicht ist auch das interessant ![]() Ich meine das ein Lux-Sensor ein spezielles Filter bräuchte, um einigermaßen genau messen zu können, ein Kamerasensor, na ich weiss nicht. Deshalb meine ich kann ein Kamerasensor bestenfalls nur einen "Lichtindex" anzeigen. Aber auch ein spezieller LUX-Sensor vollbringt keine Wunder, zu einem richtigen LuxMeter gehören Farb-Filter, cos-phi Filter, sehr großer Dynamikbereich, was kaum in die Handygröße passt. Der Zweck des ALS-Sensors im Handy ist doch eigentlich nur die Displayhelligleit einzustellen, dafür reicht es allemal. |
AW: FMX Camera Component als Lichtsensor (Lux)
Zum einen weil ich die Geräte lange Zeit in einem Zertifiziertem Service Center repariert habe, zum anderen weil die Sensoren schlicht heut zu tage fehlen.
Galaxy S10 (ohne Sensoren, nur Frontkamera): ![]() Galaxy S5 (mit Sensoren neben dem Lautsprecher): ![]() |
AW: FMX Camera Component als Lichtsensor (Lux)
Zitat:
Was aber ausdrücklich nicht heißen soll, dass nicht zusätzlich neben der Kamera noch spezialisierte Lichtsensoren verbaut werden. Die müssen ja nicht groß sein. Aber genau darin liegt auch wieder ein Problem. Denn dedizierte Luxmeter haben größere Detektionsflächen. Einzelne Detektionspixel in modernen Kamerasensoren haben Strukturgrößen im Nanometerbereich. Die Nebeneffekte (Farbrauschen etc.) sind bekannt und können Luxmessungen auch wieder ungenau machen. |
AW: FMX Camera Component als Lichtsensor (Lux)
Zitat:
Zitat:
|
AW: FMX Camera Component als Lichtsensor (Lux)
Ok, ich weiß zwar, das die Kamera dafür (auch) genutzt wird (kann sein das dies nur unterstützend war), beim S10 gibt es aber wohl Sensoren (wie für den Fingerabdruck) im bzw. Hinter dem Display:
![]() Aber das die Sensoren neben dem Lautsprecher sitzen ist nur noch selten (wenn überhaupt bei günstigen Geräten) der Fall. Demnach solltest du die Werte auslesen und nutzen können. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:43 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