![]() |
#FMX_KdF "TakePhotoFromCameraAction"
![]() ![]() Gibt es keine Möglichkeit die Auflösung der Cameras vorher aus zu lesen? Ein setzen auf 8000x6000 was bewirkt das genau? Skaliert das auch die Fotos hoch auf diese Auflösung? Mavarik PS: So hatte ich mir übrigens die Diskussion zu diesem Thread vorgestellt... Wenn Harry Stahl noch seinen Beitag hierhin verlinken würde... |
AW: #FMX_KdF "TakePhotoFromCameraAction"
Also wenn ich lese
Das macht ja auch Sinn dieses vorzugeben, denn schließlich haben wir nicht unbegrenzt Speicher-Platz zu Verfügung und die Anwendung sollte ihre Grenzen kennen. Kann die Anwendung als ruhigen Gewissens ein Bild mit 50.000 x 50.000 Pixeln verarbeiten, dann trägt die das einfach da ein und lässt sich überraschen, was die Kamera denn nun für ein Bild zurückliefert. |
AW: #FMX_KdF "TakePhotoFromCameraAction"
Wenn man aber ein Bild in maximaler Auflösung haben will, ohne daß es skaliert, dann sollte man das schon vorher entprechend auslesen und setzen.
'ne schlechte Kamera würde sonst ja unnötig hochskalliert und bei einer besseren Kamera (als seine vorgegebene Bildgröße) würde unnötig Bildinformationen verlieren. In dem Fall wäre es eigentlich besser, wenn man der TakePhotoFromCameraAction statt einer bestimmten Größe eine minimale und maximale Größe angeben kann, welche man entgegennehmen will. (für eine bestimmte Größe einfach Beides auf den gleichen Wert) Natürlich noch die Proportionen angeben, also in welchem Format man das Bild will und ob es proportional verzerrt werden darf. Dann soll sich sich die TakePhotoFromCameraAction und die Kamera einigen, was für ein Format die einem liefern können und das Bild notfalls skalieren, wenn es nicht innerhalb der Grenzen liegt, um so ein "optimales" Foto zu liefern. |
AW: #FMX_KdF "TakePhotoFromCameraAction"
Zitat:
Delphi-Quellcode:
Das muss es doch auf für Fotos geben, oder?
procedure TCameraComponentForm.FillResolutions;
var LSettings: TArray<TVideoCaptureSetting>; I: Integer; begin LSettings := CameraComponent.AvailableCaptureSettings; cbResolutions.Clear; for I := Low(LSettings) to High(LSettings) do cbResolutions.Items.Add(LSettings[I].Width.ToString + ' x ' + LSettings[I].Height.ToString + ' x ' + LSettings[I].FrameRate.ToString); cbResolutions.ItemIndex := 0; end; |
AW: #FMX_KdF "TakePhotoFromCameraAction"
Das würde bedeuten, daß "jemand" die Komponente intern einheitlich gebaut hat und natürlich auch eingebaut hat, aber ja, im Grunde sollte es da was geben.
|
AW: #FMX_KdF "TakePhotoFromCameraAction"
Was ist denn an dem Wort maximal so unverständlich? :gruebel:
Das Bild von der Kamera wird ausschliesslich kleiner (wenn größer als MaxHeight/MaxWidth) aber niemals größer! Und was bitteschön geht denn "unnötig verloren", wenn die Anwendung nur ein Bild mit maximal 1024x1024 Pixeln verarbeiten kann? Wenn die mehr kann, dann stell einfach mehr ein. Es wird gewährleistet, dass das Bild niemals größer ist, als dort eingestellt und nur dann kleiner, wenn die Kamera es eben nicht besser kann. |
AW: #FMX_KdF "TakePhotoFromCameraAction"
Zitat:
|
AW: #FMX_KdF "TakePhotoFromCameraAction"
Zitat:
Zitat:
|
AW: #FMX_KdF "TakePhotoFromCameraAction"
Zitat:
Übrigens ist es so - wie hier schon richtig vermutet - dass die Kamera Bilder keine hochskalierten Photos macht, sondern maximal bei ihrer physischen Leistungsfähigkeit bleibt, bzw. bei den eingestellten Werten, wenn diese geringer eingestellt sind. Man kann die Werte hier also großzügig vorgeben, denn ein Anwender will sicher keine schlechte Qualität von seinen Photos bekommen. Das gleiche gilt übrigens auch, wenn man ein Bild aus der Fotosammlung wählt. Je nachdem, was man damit macht - Backup auf den PC oder Mailversand - will man vielleicht unterschiedliche Qualitäten einstellen können. Eine Abfragemöglichkeit hinsichtlich der technischen Leistungsfähigkeit der Kamera wäre nicht schlecht, so dass der User eine realistische Vorstellung dessen bekommt, was er auswählen kann. |
AW: #FMX_KdF "TakePhotoFromCameraAction"
So, nun abschließend noch die Info, dass ich nun ENDLICH auch eine Aktualisierung auf Android Lolipop für mein Sony Ultra Z bekommen habe und nun selber Android 5.x testen kann (musste das bislang hilfsbereiten Kunden überlassen).
Insofern da auch nur die Info, dass die Kombination XE7 und Android 5.x mit dem App-Tethering hervorragend läuft. Habe jetzt, wenn das Programm unter Android 5 ausgeführt wird, dafür den Android L-Style vorgesehen, sieht ganz gut aus. Von der kostenpflichtigen "Pro"-Version des Programms habe ich auch noch ein ganz kurzes Video gemacht, bei Interesse siehe hier: ![]() Irgendwo hat mal jemand hier im Forum vor kurzem gesagt, mit Swift hätte man schnellere Erfolgserlebnisse als mit Delphi. Mal abgesehen davon, dass ich mit Swift keine Android-Programme entwickeln kann und dass alleine der Apple Review-Prozess u.U. Wochen oder Monate Zeit in Anspruch nehmen kann: Das Mini-Programm hier habe ich mit XE7 am Wochenende nebenher (Familienbesuch war da) entwickelt, eine Webseite dafür aufgestellt ( ![]() Ich bin da sehr zufrieden mit Delphi. XE8 werde ich erst nutzen, wenn das Update 1 raus ist, freue mich aber schon sehr darauf. App-Tethering ist eine superg...e Sache. Das war hier erst mal nur ein Probelauf, werde es jetzt für meine "wichtigen" Programme übernehmen (durchaus auch noch einige VCL-Programme), also z.B. das Datenbankprogramm ergänzen, so dass man direkt per App-Tethering einen Datensatz per mobilen Gerät erstellen kann und an das Desktop-Programm senden kann. Super Sache, wenn man z.B. eine Inventarliste erstellen will: Photo vom Gegenstand gemacht, paar Infos hinzu geschrieben und direkt an die Desktop-Datenbank gesendet. Einfacher geht's kaum. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:35 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