Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Bilder von Kamera übertragen (https://www.delphipraxis.net/156398-bilder-von-kamera-uebertragen.html)

NTcomputer_0 30. Nov 2010 19:50

Delphi-Version: 2005

Bilder von Kamera übertragen
 
Hallo Community,

ich benötige eine Möglichkeit Bilder mit ihren Metainformationen von einer Fotokamera (!) zu übertragen. Die mir bekannten TWAIN-Schnittstellen liefern leider nur die Bitmaps und keine Informationen wie Aufnahmedatum, etc.

rollstuhlfahrer 30. Nov 2010 19:52

AW: Bilder von Kamera übertragen
 
Kann man die Kamera nicht als Massenspeicher anbinden? - Da sollte bei den normalerweise JPGs auch die gewünschte Info schon drin stecken.

Bernhard

PS: Wie macht das der Windows--eigene Assistent für Kameras und Scanner?

NTcomputer_0 30. Nov 2010 19:55

AW: Bilder von Kamera übertragen
 
nein, leider nicht (wenn du nicht meinst, SD-Karte raus und in Kartenleser rein ;-) )
USB-Kameras werden nicht als Massenspeicher verwendet - und bekommen ergo keinen Laufwerksbuchstaben und kein einfach lesbares Dateisystem (wäre ja auch zu einfach:wink: )

Für Scanner (ich denke mal, auch Kameras) gibt es noch die WIA-Schnittstelle - dazu habe ich aber leider nichts Passendes für Delphi gefunden. Existiert dafür irgendwo eine Pascalübersetzung?

Bernerbaer 30. Nov 2010 21:01

AW: Bilder von Kamera übertragen
 
Zitat:

Zitat von NTcomputer_0 (Beitrag 1065216)
USB-Kameras werden nicht als Massenspeicher verwendet - und bekommen ergo keinen Laufwerksbuchstaben und kein einfach lesbares Dateisystem (wäre ja auch zu einfach:wink: )

Meist es es wirklich so einfach. Ich habe noch keine Consumer-Kamera gesehen, die das nicht unterstützt.
normalerweise funktioniert es so: fotowelt-online

rollstuhlfahrer 30. Nov 2010 21:28

AW: Bilder von Kamera übertragen
 
also bei der letzten Aldi-Kamera ist es so: Rechner an, USB-Kabel rein, mit der Kamera verbinden, Kamera an, warten (1,5 Sekunden). Danach frägt die Kamera, als was man sie denn verwenden will. Da stehen zur Verfügung: PC, Drucker und Webcam. In den ersten beiden Modi kann man per Laufwerk auf die SD-Karte (oder falls keine drin ist auf den internen Speicher) zugreifen und beim letzteren meldet sich die Kamera als vollwertige Webcam am System an.

Systemkameras gehen da einen klein wenig anderen Weg, sie werden von Win7 (hin und wieder per Plug&Play) aber dennoch als "Kamera" erkannt und haben damit zwar keinen LW-Buchstaben, können aber über den Explorer mit Daten betankt werden und es lassen sich Daten abzapfen.

Bernhard

NTcomputer_0 1. Dez 2010 16:22

AW: Bilder von Kamera übertragen
 
Genau, sie erhalten keinen Laufwerksbuchstaben, lassen sich aber über den Explorer bearbeiten.
Und wie realisiere ich das jetzt mit Delphi?

zeras 1. Dez 2010 17:46

AW: Bilder von Kamera übertragen
 
Zitat:

Zitat von NTcomputer_0 (Beitrag 1065460)
Genau, sie erhalten keinen Laufwerksbuchstaben, lassen sich aber über den Explorer bearbeiten.

Bei meiner Exelim geht das über einen LW Buchstaben ohne Probleme.

NTcomputer_0 1. Dez 2010 19:58

AW: Bilder von Kamera übertragen
 
Leider erhalten alle meine zur Verfügung stehenden KAmeras keinen LW-Buchstaben.
Wie kann ich trotzdem auf sie zugreifen?

himitsu 1. Dez 2010 20:14

AW: Bilder von Kamera übertragen
 
Jupp, es gibt einige Geräte (Kameras, MP3-Player usw.), welche als "Gerät" erkannt und direkt unter dem "Arbeitsplatz" angezeigt werden, anstatt einen Wechseldatenträger zu simulieren, welche Windows standardmäßig an einen Laufwerksbuchstaben koppelt.

Ich würde erstmal über SHGetFolderLocation mir den Arbeitsplatz besorgen, dann darin über irgendeine dieser SH-Funktionen nach der Kamera suchen und mich dann bis zu den Dateien durchkämpfen.

Früher gab es mal im Delphi einen Demo-Projekt, welches einen billigen "Windows Explorer" darstellt ... darin wurde mit diesen Funktionen gearbeitet wird ... zuletzt in D4 oder D7 gesehn und k.A. ob's diese Demo noch gibt.

NTcomputer_0 2. Dez 2010 16:19

AW: Bilder von Kamera übertragen
 
Danke für deinen Ansatz!
SHGetFolderLocation gilt als deprecetad (laut msdn), aber es gibt die (neuere?) Funktion SHGetKnownFolderIDList, über die mit der KNOWNFOLDERID FOLDERID_ComputerFolder das selbe Resultat erreicht werden sollte. Leider weiß ich nicht, wie ich innerhalb dieses VirtualFolders nach meiner Kamera suche! Gibt es dafür einen speziellen SH-Befehl (den ich bislang noch nicht gefunden habe)?

NTcomputer_0 4. Dez 2010 11:50

AW: Bilder von Kamera übertragen
 
keiner eine Idee?

NTcomputer_0 5. Dez 2010 10:48

AW: Bilder von Kamera übertragen
 
Ich habe es jetzt geschafft, alle Elemente des Computers zu listen - die Kamera ist aber nicht dabei! :(
Hier mein Code:
Delphi-Quellcode:

const
  Flags = $10000 or $08000 or $04000 or $02000 or $01000 or $00800 or $00400 or $00200 or $00100 or $00080 or $00040 or $00020 or $00010;
//testweise mal alle....
var
  ComputerPIDL:PItemIDList;
  EnumList:IEnumIDList;
  Name:PChar;
  NameS:String;
  VirtualFolder:IShellFolder;
  ID: PItemIDList;
  NumIDs: LongWord;
begin
  GetMem(Name,50);
  Try
    SHGetSpecialFolderLocation(0,CSIDL_DRIVES,ComputerPIDL);
    PIDL_GetFileFolder(ComputerPIDL,VirtualFolder);
      VirtualFolder.EnumObjects(
        0,
        Flags,
        EnumList);
    while EnumList.Next(1, ID, NumIDs) = S_OK do
    begin
      PIDL_GetDisplayName(VirtualFolder,ID,0,Name,50);
      NameS:=StrPas(Name);
      //alle Laufwerke kommen hier an - Geräte NICHT.
    end;
  Except
    Error:=true;
    exit;
  End;
  FreeMem(Name);
end;

hathor 5. Dez 2010 16:11

AW: Bilder von Kamera übertragen
 
Portable Device
Vielleicht hilft das weiter:

MTP (Media Transfer Protocol) is a protocol and accompanying set of drivers developed by Microsoft to connect portable devices to a Windows Vista, Windows XP, or 2000 (with SP4) PC and synchronize digital media content between them.

Media Transfer Protocol Porting Kit

http://www.microsoft.com/downloads/e...displaylang=en
http://www.2shared.com/file/OINmKOgj/mtppk12.html
Auf dieser Seite click here anklicken...
Save file to your PC: click here

NTcomputer_0 6. Dez 2010 06:56

AW: Bilder von Kamera übertragen
 
Danke, nur ist MTP komplett in C (und für mein Programm zu umfangreich), kennt jemand eine Delphi-Übersetzung von PTP (Picture Transfer Protocol)?

hathor 6. Dez 2010 07:57

AW: Bilder von Kamera übertragen
 
Das MTP (Media Transfer Protocol) ist eine Weiterentwicklung des PTP (Picture Transfer Protocol).
Vielleicht solltest Du doch auf C# oder C++ umsteigen...:lol:

NTcomputer_0 6. Dez 2010 19:13

AW: Bilder von Kamera übertragen
 
Ich habe es jetzt doch per WIA gelöst .. trotzdem Dank an alle Ideen!
Werde meinen Code noch posten, sobald ich ihn fertiggestellt habe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:10 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