Autor Beitrag
littlemike1005
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 187



BeitragVerfasst: Sa 02.11.02 21:15 
wie lese ich eine bitmap (bmp datei) in einen string ein???
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Sa 02.11.02 21:37 
Versuch es mal so:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
function Bmp2Str(FileName:string):string;
var x:Textfile;
     str:string;
begin
 AssignFile(x,Filename);
 Reset(x);
 Result:='';
 while not eof(x) do begin
  ReadLn(x,str);
  Result:=Result+str;
 end;
 CloseFile(x);
end;


Das dürfte zwar nicht klappen, aber mit ein bisschen Erfindergeist könnte es gelingen...

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Sa 02.11.02 22:20 
@littlemike1005

Was versuchst du? Wenns mit einem Beirtag nicht klappt, dann ein zweiter?

Es gibt nichts fertiges in Delphi, du mußt es schon selbst programmieren.

Such mal im Internet nach Units die sich mit Uuencode und Base 64 Kodierung beschäftigen.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 03.11.02 04:08 
Ich habe davon echt nicht viel Ahnung. Aber mein Gefühl als Programmierer sagt mir, dass das wohl nicht viel Sinn machen dürfte ein Bitmap in einen String einzulesen. Wenn dann würde ich es in einen Memory-Stream oder so was einlesen.
Raphael82
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67



BeitragVerfasst: So 03.11.02 13:04 
Streams, Blockread, Blockwrite, wenn du dich damit auseinandersetzt geht es. Es gibt auch Komponenten, die einem die Arbeit abnehmen. Musst halt einfach mal suchen.

(ReadLn und das Öffnen als Textdatei solltest du besser erst gar nicht versuchen, es geht nicht..)

Raphael

_________________
Share your knowledge to receive perfection!
littlemike1005 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 187



BeitragVerfasst: Mo 04.11.02 00:11 
Titel: @Textdatei
Jo das mit der Textdatei musste ich auch feststellen.

Ich such mal nach lösungen.

Aber denke erst mal an alle
littlemike1005 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 187



BeitragVerfasst: Mo 04.11.02 00:24 
Titel: @Raphael82
ja eingelesen und mit blockwrite in eine andere datei das geht.

aber ich will die bitmap in einen string haben. das scheitert immer. nach den ersten 3 zeichn (BM¶) dann ist ende
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 04.11.02 02:16 
Du siehst doch, dass es nicht geht. Also mußt du es anderst machen.

Was willst du mit dem Bitmap in dem String eigentlich?
littlemike1005 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 187



BeitragVerfasst: Mo 04.11.02 02:38 
Titel: MEMO oder STRING
Ich brauch das Bild entweder im string oder im memo feld

wenn ich den editor von windows benutze öffnet er mir die datei super schnell und es ist auch alles da wenn ich speichern unter benutze um das bild in eine andere datei zu verfrachten.

ich will das bild mit der fastnet kompo zu einem anderen rechner senden. mit text kein problem nur bilder.

ok gebe es ja zu ist nicht so ganz üblich.
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mo 04.11.02 03:01 
Doch, das ist sogar sehr üblich. Ich hab dir bereits oben den Tipp mit der Kodierung gegeben, aber du hackst nicht nach ob es dich interessiert. Üblich bei der Verschickung ist das Uuencode Format (7Bit). Da mußt du dich aber damit beschäftigen und das Format studieren.

Du hast wahrschinlich deine Binärdatei in 7 Bit Teilchen zerteilt. Sieben Bit macht 127 Ascii Zeichen und darunter einige Steuerzeichen. Dein Problem mit dem BM¶ ist, daß anscheinend an der vierten Stelle ein Ascii Null ist. Memo glaubt, daß es ein nullterminierter Sting ist und schneidet den Rest ab. Im String ist der Rest aber weiterhin da. Allerdings wette ich mit dir, daß auch der Rest einige Steuerzeichen hat und einige davon kommen ducht das Mailsystem nicht durch.

Die einfachste und schnellste Möglichkeit ist deshalb die 6 Bit Kodierung. Dadurch wird die Datei zwar um 1/8 größer, dafür ist es aber schnell gemacht.

zuerst eine Konstante mit 64 Zeichen erstellen, z.B.

const
code = '+/0123456789abcdefghijklmnopqrstunwxyzABCDEFG...

Dann zerteilst du mit BlockRead deinen Binärstring in 6 Bit Teilchen. Sechs Bit ergeben eine Maximalzahl von 63. Jetzt kannst du jeder Zahl einen Buchstaben zuordnen

Bildstring := Bildstring + code[Zahl + 1];

Wobei Zahl der Wert ist der mit BlockRead gelesen wurde.

Zurück geht es genauso, nur in andere Richtung.

Das ganze ist Arbeit für ein Abend.

Meinen Popcoder hab ich auch so gemacht. Hättest du schon beim letzten Postig haben können. Aber du fragst nicht nach und stellest eine neue Frage.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 04.11.02 03:01 
Eventuell ist das die Lösung:
www.delphi-treff.de/...urs/index.php4?kat=5

Also das Bitamp als String zu versenden ist es bestimmt nicht.
littlemike1005 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 187



BeitragVerfasst: Mo 04.11.02 15:28 
Titel: DANKE
OK Luckie!!!

Danke das Du danch geschaut hast ich werde es mal versuchen aber vor Freitag werde ich nicht dazu kommen. Ich melde mich hier im Forum ab noch mal ob es gefunzt hat.


DANKE