AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Array of TJepeg in Blob schreiben und lesen
Thema durchsuchen
Ansicht
Themen-Optionen

Array of TJepeg in Blob schreiben und lesen

Ein Thema von Smiley · begonnen am 15. Dez 2020 · letzter Beitrag vom 16. Dez 2020
Antwort Antwort
Benutzerbild von Smiley
Smiley

Registriert seit: 9. Dez 2004
Ort: Gedern
210 Beiträge
 
Delphi 12 Athens
 
#1

AW: Array of TJepeg in Blob schreiben und lesen

  Alt 16. Dez 2020, 10:32
@Himitsu
Die Beispiele von ComponetAce habe ich mir angesehen.

Zu deinem ersten Link
Zitat:
Ja, die ZIP kann ein Stream sein
Hier der Code aus dem Link
FileName := 'C:\test.zip';
OpenArchive(fmCreate);
BaseDir := 'C:\';
fileStream := TFileStream.Create('C:\test.txt', fmOpenReadWrite);
AddFromStream('anothername.txt', fileStream);
CloseArchive();

Bei den anderen Beispielen dasselbe, es ist immer nur eine Seite ein Stream, die andere Seite ist eine Datei.

Außerdem hat scrat1979 geschrieben
Zitat:
Ich denke du wirst nicht drumrumgekommen, die ZIP-Datei temporär auf der Platte zu speichern und z.B. bei ZiForge mittels ExtractToStream(Filename...) die Datei in das Image zu entpacken.
Und der muss es ja wissen.

Zitat:
@Himitsu
oder wirklich zusammen, als ein Ding (z.B. als MJPEG oder ein anderes Videoformat)
Das geht leider auch nicht, da ich nur eine Reihe von Bildern habe, die in einem Abstand von 40ms nacheinander abgespielt werden müssen.
Ein Video daraus zu machen bedeutet 40ms lang das gleiche Bild zu duplizieren und damit die Datei enorm aufzublähen.
Der Sinn dieser Bildfolge ist es mit möglichst wenigen Bildern eine noch flüssige Bewegung zu zeigen um Platz zu sparen.
Die optimalste Art das zu speichern ist meiner Ansicht nach, ein Jpeg-Array.

Meine Frage ist: Kann man ein Array aus Bildern in einen Blob speichern (sollte doch machbar sein)
und kann man sie auch wieder in diesem Format herausholen
und wie ist die Syntax dazu.

Der Code in meinem Beispiel unter
// Video einlesen und in Image schreiben
if (AktData.Typ = 'V') then
ist nur so dahingeschrieben um zu zeigen was ich machen will, ich denke nicht, dass es genauso machbar ist.

Trotzdem Danke dass Du Dir Gedanken dazu gemacht hast Himitsu

Geändert von Smiley (16. Dez 2020 um 10:42 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#2

AW: Array of TJepeg in Blob schreiben und lesen

  Alt 16. Dez 2020, 13:30
Zitat:
Delphi-Quellcode:
fileStream := TFileStream.Create('C:\test.txt', fmOpenReadWrite);
AddFromStream('anothername.txt', fileStream);
Bei den anderen Beispielen dasselbe, es ist immer nur eine Seite ein Stream, die andere Seite ist eine Datei.
Ja klar, aber wie gesagt -> man kann auch TMemoryStream statt TFileStream verwenden, dann bleibt es im Programm
und der "Dateiname" in AddFromStream ist ja die "Addresse" innerhalb der Zip, wo man speichern oder auslesen will ... also passt schon.



MJPEG ist ein Stream, wo meistens am Anfang das Timing angegeben wird (z.B. die Pause von 40ms) und dann kommen viele JPEGs, die nacheinander angezeigt werden.
Wird z.B. gern von IP-Webcams benutzt, da man dafür kein "aufwändiges" Videoencoding in der Firmware braucht. (einfach nur Fotos machen und nacheinander ein neues JPEG ausgeben, was man mit dem vorherrigen Bild nicht unbedingt differenz-verrechnen muß)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (16. Dez 2020 um 13:33 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Smiley
Smiley

Registriert seit: 9. Dez 2004
Ort: Gedern
210 Beiträge
 
Delphi 12 Athens
 
#3

AW: Array of TJepeg in Blob schreiben und lesen

  Alt 16. Dez 2020, 19:50
Zitat von himitsu:
man kann auch TMemoryStream statt TFileStream verwenden, dann bleibt es im Programm
und der "Dateiname" in AddFromStream ist ja die "Addresse" innerhalb der Zip, wo man speichern oder auslesen will ... also passt schon.
Wenn das funktioniert wäre das meine Lösung um die Daten aus der alten Datenbank auszulesen und dann als MJPEG neu abzuspeichern.
Ich müsste die Zip-Datei aus dem Blob lesen in einen Blobstream oder gleich einen Memory Stream. Dann die einzelnen Dateien B01 bis B120 in einen MJPEG schreiben und diesen dann in der neuen Datenbank in das Blob-Feld schreiben.
Geht das so ?
Wie verwendet man MJPEG ? (füllen,lesen,abspielen)
Habe mich noch nie MJEG beschaftigt.

Diese Lösung gefällt mir.
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:12 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