Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]6970[/thread]

Aktuellstes Bild auslesen, kopieren + abspeichern

Leser: 2


<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten
Gast Gast
 2005-05-08 16:34
#54671 #54671
Hallo,
habe zwar schon viel gesucht und gegooglet, aber noch nichts passendes gefunden!
Ich habe eine Webcam laufen, die Bilder auf eine Seite stellt. Die Bilder haben fortlaufend die Namen img041228152831_1.jpg, img041228152831_2.jpg, img041228152831_3.jpg, img041228152831_4.jpg. Nun will ich jeweils das aktuellste Bild beim Seitenaufruf als aktuell.jpg anzeigen lassen und die anderen sind als "History" zu sehen.
D.h. das Skript soll beim Seitenaufruf die 4 Bilder anhand des Datums vergleichen und das neueste kopieren und unter dem Namen aktuell.jpg abspeichern!
Für Eure Hilfe wäre ich super dankbar, da ich mit perl noch so gut wie nix am Hut habe und das Problem anders scheinbar nicht lösbar ist!
Joachim.
Ronnie
 2005-05-08 18:17
#54672 #54672
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Ich würde an deiner Stelle einen cron-Job verwenden, der minütlich einen Softlink namens aktuell.jpg aktualisiert.
joachim
 2005-05-08 18:39
#54673 #54673
User since
2005-05-08
6 Artikel
BenutzerIn
[default_avatar]
Hm... vl hab ich mich nicht klar genug ausgedrückt:
Also: Webcam läd das Bild (Rechner läuft nicht, webcam hat nen ftp eingebaut) img...._1.jpg bis img..._4.jpg hoch und fängt dann wieder bei img..._1.jpg an. Diese Bilder sind auf der HP zu sehen, so als art kurz-History über die letzten 4 bzw 2 Stunden. Zusätzlich soll das aktuellste Bild (aktuell.jpg) zu sehen sein, welches aus dem jeweiligen img..._X.jpg mittels skript erstellt werden soll.
Und zusätzlich läuft ein cronjob, der immer um 12 Uhr das Bild aktuell.jpg in einer großen History speichert!

Den cornjob und das skript für die aktuell.jpg Speicherung hab ich schon fertig bekommen und der klappt auch. Nur weiß ich nicht wie ich das jeweils aktuellste Bild automatisch kopieren und umbenennen lassen soll!
Hoffe auf Hilfe, Joachim.
Ronnie
 2005-05-08 19:05
#54674 #54674
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
#!/usr/bin/perl

use strict;
use warnings;

my $newest = shift @{[sort {-M $a > -M $b} (<*.jpg>)]};
unlink 'aktuell.jpg' or die "$!";
symlink $newest, 'aktuell.jpg' or die "$!";

erzeugt für das aktuellste .jpg im aktuellen Ordner einen symlink mit dem Namen aktuell.jpg.
Dubu
 2005-05-08 20:20
#54675 #54675
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=Ronnie,08.05.2005, 17:05]
Code: (dl )
1
2
3
4
5
6
7
8
#!/usr/bin/perl

use strict;
use warnings;

my $newest = shift @{[sort {-M $a > -M $b} (<*.jpg>)]};
unlink 'aktuell.jpg' or die "$!";
symlink $newest, 'aktuell.jpg' or die "$!";

erzeugt für das aktuellste .jpg im aktuellen Ordner einen symlink mit dem Namen aktuell.jpg.[/quote]
1.) Wenn sich seit dem letzten Aufruf nichts an den Bildern geaendert hat, erzeugt das Skript einen Link von aktuell.jpg auf sich selber!

2.) Wenn aktuell.jpg noch nicht existiert, wird es auch nicht angelegt, weil das unlink() vorher fehl schlaegt.

Hier eine leicht verbesserte Version:
Code: (dl )
1
2
3
4
5
6
7
8
#!/usr/bin/perl

use strict;
use warnings;

my $newest = shift @{[sort {-M $a > -M $b} (<img*.jpg>)]};
unlink 'aktuell.jpg' or die "$!" if -e 'aktuell.jpg';
symlink $newest, 'aktuell.jpg' or die "$!";

Das Muster sucht jetzt nach img*.jpg und es wird abgefragt, ob aktuell.jpg existiert.
joachim
 2005-05-08 21:37
#54676 #54676
User since
2005-05-08
6 Artikel
BenutzerIn
[default_avatar]
Hallo Leute,
erst mal vielen dank für die Hilfe!
Aber: es geht noch net alles so wie es soll! Das verbesserte script funktioniert einwandfrei.
Nur wird mir das Bild aktuell.jpg nicht angezeigt!!! Wie bind ich das denn ein?! und auch so, dass es der cronjob findet, wenn er um 12Uhr nach aktuell.jpg sucht?!
http://www.klug-familie.de/joachim/content/data/webcam/archiv_test/ dort ist die Testseite! alles soweit ok (man sieht ja auch die Zeitangabe (durch php) der einzelnen Bilder! Nur aben nicht das aktuell.jpg!
Ronnie
 2005-05-08 21:44
#54677 #54677
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
@dubu: Danke, hatte das unlink erst später eingefügt und nicht nochmal probiert - blöder Fehler.

@joachim: Schau mal nach mit welchen Rechten der Symlink erzeugt wird. Evtl. hat der Webserver nicht das Recht die Datei zu lesen.\n\n

<!--EDIT|Ronnie|1115574544-->
joachim
 2005-05-08 21:54
#54678 #54678
User since
2005-05-08
6 Artikel
BenutzerIn
[default_avatar]
hab mal testweise das ganze verzeichnis incl. dateien (archiv_test) auf chmod 777 gesetzt! geht auch net. Zeigt einfach das Bild nicht an.
Wenn ich die datei (den link) aktuell.jpg auf ein anderes chmod setzt, dann ändert sich auch der chmod der entsprechenden orginal datei.
was soll ich machen?! ich weiß net wie das gehen soll!! *Heul*
Ronnie
 2005-05-08 22:04
#54679 #54679
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Was schreibt der Apache denn ins error.log?
joachim
 2005-05-08 22:12
#54680 #54680
User since
2005-05-08
6 Artikel
BenutzerIn
[default_avatar]
gute frage... die kann ich net finden bzw nicht sehen, da ich das ganze auf nem hosting server im netz liegen habe. ich seh zwar ne zugriffsstatistik, aber kein fehler log. und das log mit den fehlern die ich mir in der confoxx oberfläche anzeigen lassen kann ist leer. also dort keine fehler.
<< |< 1 2 3 >| >> 22 Einträge, 3 Seiten



View all threads created 2005-05-08 16:34.