AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi jpeg in FileStream speichern
Thema durchsuchen
Ansicht
Themen-Optionen

jpeg in FileStream speichern

Ein Thema von Hyperspacer · begonnen am 8. Apr 2009 · letzter Beitrag vom 9. Apr 2009
Antwort Antwort
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#1

Re: jpeg in FileStream speichern

  Alt 8. Apr 2009, 19:34
Hallo,
erstens würde ich hier auch fmCreate nehmen, weil die Datei allerwahrscheinlichkeit nach nicht existiert.

Ich würde auch zweitens folgenden Code empfehlen:
Delphi-Quellcode:
var
  Datei : TFileStream;
  jpeg : TJpegImage;
  Bild: TPicture;
begin
  Datei := TFileStream.Create(Savedialog1.FileName,fmCreate);
  // JPEG erzeugen
  jpeg := TJpegImage.Create;
  jpeg.CompressionQuality := 90;

  Bild := TPicture.Create;
  Bild.LoadFromFile(mmFiles.Lines[i]);
  jpeg.Assign(Bild.Graphic);
  jpeg.Compress;
  Bild.Free;

  // in Stream schreiben
  jpeg.SaveToStream(datei);
  jpeg.Free;
  datei.free;
Der Vorteil bei dieser geänderten Version liegt darin, dass TPicture alle verfügbaren Dateiformate lesen kann (auch JPEG, etc.), sobald die Unit für den Graphic-Typ in die Uses-Liste eingetragen wird. (Es geht z.B. auch PNG).
Des weiteren hast du für ein Speicherleck gearbeitet, da du deinen File-Stream nie aus dem Speicher gekehrt hast. Heißt auch, dass die Datei noch offen war.
Falls dich noch ein wenig die Dateisicherheit interessiert, guck doch mal nach folgendem:
Code:
fmShareExclusive   Kein Lese- und Schreibzugriff.
fmShareDenyWrite   Kein Schreibzugriff.
fmShareDenyRead   Kein Lesezugriff. Verwenden Sie diesen Modus nicht in plattformübergreifenden Anwendungen.
fmShareDenyNone   Andere haben uneingeschränkten Zugriff.
Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  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 16:54 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