Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem bei Bildübergabe... (https://www.delphipraxis.net/9655-problem-bei-bilduebergabe.html)

FriFra 1. Okt 2003 07:54


Problem bei Bildübergabe...
 
Ich habe 2 Programme, eines davon captured Livebilder einer Kamera und bietet diese über einen integrierten Webserver zum download an. Alternativ kann das Programm den Stream Bild für Bild in eine Jpg-Datei ausgeben.

Programm 2 soll die Jpg-Datei einlesen und per FTP auf einen Server uploaden.

Die Trennung in 2 Programme (man hätte auch multithreading verwenden können) liegt darin begründet, dass Programm 1 aus Performance Gründen den Upload nicht selbst durchführen soll, damit der Stream nicht zu stark gebremst wird.

Mein Problem ist nun, dass ich nicht vernünftig und zuverlässig hinbekomme die Bilder zu übergeben.
1. Übergabe mit Hilfe einer Message -> Senderprogramm hängt wärend der Übergabe, wenn Programm 2 gerade mit dem Upload beschäftigt ist -> ungeeignet!
2. Übergabe über Datei -> Wie kann ich sicher verhindern, dass eine Datei geschrieben wird, wärend sie von Programm 2 noch gelesen wird, ohne Programm 1 warten zu lassen (muss zwingend ungebremst arbeiten)? Wie kann ich verhindern, dass Programm 2 die Datei schon liest, wenn sie noch nicht 100% geschrieben wurde?

thomasdrewermann 1. Okt 2003 08:00

Re: Problem bei Bildübergabe...
 
Hi,
versuch duch die Datei von programm1 zu speichern und direkt nach dem Speichern eine Nachricht an Prog2 zuschicken das die fertig ist!

FriFra 1. Okt 2003 08:06

Re: Problem bei Bildübergabe...
 
Das lesen mit "loadFromFile" ist aber zu langsam... d.h. es passiert regelmässig, dass dann Programm 1 Probleme bekommt, wenn es die nächste Datei schreiben will...

FriFra 1. Okt 2003 10:24

Re: Problem bei Bildübergabe...
 
Ich habs jetzt so gelöst:

Programm 1 speichert jedes Bild mit dem Namen capture_[TimeStamp].jpg und sendet diesen Namen per Message zu Programm 2.
Programm 2 kann nun problemlos das Bild lesen.
Programm1 lässt immer die letzten 10 Bilder strehen und löscht alle älteren Bilder automatisch. Beim Beenden wird zuerst Programm2 beendet (über Message) und dann werden alle gecacheten Bilder gelöscht. Beim Programmstart sucht Programm 1 nach "resten" die z.B. wegen eines Absturzes nicht gelöscht wurden und entfernt diese Bilder.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz