AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Mehrere Bilder in einer Datei Speichern
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere Bilder in einer Datei Speichern

Ein Thema von Christian.Ossi · begonnen am 11. Jul 2006 · letzter Beitrag vom 8. Dez 2011
 
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#3

Re: Mehrere Bilder in einer Datei Speichern

  Alt 11. Jul 2006, 23:15
Eine Lösung wäre XML:

Du speicherst die jpegs in jewils einen Stream. Dann kanst du die einzelnen Streams in xml Speichern. Nachteil diese Datei wird etwas größer da die daten anderes gespeichert werden.

Hier noch eine Unit an der ich grade arbeite die streams in xml speichern soll (benötigt die JEDI Komponetenten):
Delphi-Quellcode:
{******************************************************************************}
{*                                                                            *}
{* Project:        CrashPoint                                                 *}
{* Unit:           uCP_MapFile                                                *}
{* Version:        1.0                                                        *}
{*                                                                            *}
{* Description:                                                               *}
{*                 Klasse um eine Liste von Streams in eine Datei zu          *}
{*                 speichern und zu lesen                                     *}
{*                                                                            *}
{* Log:                                                                       *}
{*               # First Version                                              *}
{*                                                                            *}
{*                                                                            *}
{* Author:         Björn R. Salgert (bjoern@bsnx.net)                         *}
{* URL:            N/A - [url]http://bsnx.net[/url]                                      *}
{*                                                                            *}
{******************************************************************************}
unit uCP_MapFile;

interface

uses SysUtils, Classes, JvSimpleXml, Dialogs;

type
  TMapFile = class (TJvSimpleXML)
  protected

  public
    procedure AddStream(Name: String; Stream: TStringStream);
    procedure GetStream(Name: String; Stream: TStream);
    procedure AddString(Name, Text: String);
    function GetString(Name: String): String;
    procedure AddInt(Name: String; I: Integer);
    function GetInt(Name: String): Integer;
    constructor Create(AOwner: TComponent); override;
  end;

implementation

function streamtostr(S: TStream): string;
var
  str: string;
  lStringStream: TStringStream;
begin
  lStringStream := TStringStream.Create;
  Try
    lStringStream.CopyFrom(S, 0);
    Result := lStringStream.DataString;
  Finally
    lStringStream.Free;
  End;
end;

function strtohex(Text: String): String;
var
  i: integer;
  s: string;
begin
  for i:=1 to length(Text) do begin
    s:= s+IntToHex(Byte(Text[i]), 2);
  end;
  result:=s
end;

{ TMapFile }

procedure TMapFile.AddInt(Name: String; I: Integer);
begin
  Self.Root.Items.Add(Name, i);
end;

procedure TMapFile.AddStream(Name: String; Stream: TStringStream);
begin
// Self.Root.Items.Add(Name, strtohex(Stream.DataString));
  Stream.Position:=0;
  Self.Root.Items.Add(Name, Stream);
end;

procedure TMapFile.AddString(Name, Text: String);
begin
  Self.Root.Items.Add(Name, Text);
end;

constructor TMapFile.Create(AOwner: TComponent);
begin
  inherited;
  Self.Root.Name:= 'map';
end;

function TMapFile.GetInt(Name: String): Integer;
begin
  if Self.Root.Items.ItemNamed[Name]<>nil then begin
     result:=Self.Root.Items.ItemNamed[Name].IntValue;
  end;
end;

procedure TMapFile.GetStream(Name: String; Stream: TStream);
var
  b: Byte;
  i: integer;
begin
  if Self.Root.Items.ItemNamed[Name]<>nil then begin
     Stream.Position:=0;
     Self.Root.Items.ItemNamed[Name].GetBinaryValue(Stream);
     {
    for i:=1 to Length(Self.Root.Items.ItemNamed[Name].Value) do begin
      B:= Byte(Self.Root.Items.ItemNamed[Name].Value[i]);
      Stream.Write(B, sizeof(B));
     end; }

  end;
end;

function TMapFile.GetString(Name: String): String;
begin
  if Self.Root.Items.ItemNamed[Name]<>nil then begin
    result:= Self.Root.Items.ItemNamed[Name].Value;
  end;
end;

end.
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
 


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 21:01 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