![]() |
Dateien,vor allem Bilder lassen sich nicht komplett auslesen
Ich will eine JPG-Datei auslesen, sie dann verändern und unter anderem Namen abspeichern.
Es werden aber nie alle Zeichen ausgelesen... Zum verzweifeln... Ich hoffe ihr wisst rat:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var infile,outfile:textfile; ch:char; begin AssignFile(infile,'c:\elle.jpg'); reset(infile); AssignFile(outfile,'c:\elle2.jpg'); rewrite(outfile); while not eof(infile) do begin read(infile,ch); write(outfile,ch); end; CloseFile(infile); CloseFile(outfile); end; |
Re: Dateien,vor allem Bilder lassen sich nicht komplett ausl
vielleicht liegs an "textfile"?
|
Re: Dateien,vor allem Bilder lassen sich nicht komplett ausl
wie mach ich das dann? :S sorry, steh grad aufm schlauch!
|
Re: Dateien,vor allem Bilder lassen sich nicht komplett ausl
Versuchs doch einfach mit "TFileStream"
Delphi-Quellcode:
var LStream1, LStream2: TStream;
begin LStream1 := TFileStream.Create('c:\elle1.jpg', fmOpenRead); LStream2 := TFileStream.Create('c:\elle2.jpg', fmCreate); LStream2.CopyFrom(LStream1, LStream1.Size); //Jetzt noch bischen in LStream2 rumändern LStream2.Free; LStream1.Free; end; |
Re: Dateien,vor allem Bilder lassen sich nicht komplett ausl
is irgendwie ungünstig, weil die ausgangsdatei praktisch komplett verändert werden muss... also wärs praktisch, wenn ich die einzelnen zeichen direkt verändern könnte... oder geht das mit dem stream auch?
|
Re: Dateien,vor allem Bilder lassen sich nicht komplett ausl
machma ein file of Byte bzw. file of Char.
|
Re: Dateien,vor allem Bilder lassen sich nicht komplett ausl
das geht mit stream auch (und ist vor allem objectorientierter als "file of char" etc.
Delphi-Quellcode:
var LStream1, LStream2: TStream;
LCount: Integer; LBuffer: Char; begin LStream1 := TFileStream.Create('c:\elle1.jpg', fmOpenRead); LStream2 := TFileStream.Create('c:\elle2.jpg', fmCreate); for LCount := 0 to LStream1.Size - 1 do begin LStream1.Read(LBuffer, 1); //jetzt eventuell noch "LBuffer" verändern LStream2.Write(LBuffer, 1); end; LStream2.Free; LStream1.Free; end; |
Re: Dateien,vor allem Bilder lassen sich nicht komplett ausl
Zitat:
[edit] aaaah, es muss LStream2.Write(LBuffer, 1); heißen! Wenn jetzt noch was nicht klappt, meld ich mich nochmal! Aber schonmal vielen Dank an Euch :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:40 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