Images , Files , *.jpg , *.gif [Erledigt]

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

TimBo

Betreff: Images , Files , *.jpg , *.gif [Erledigt]

BeitragSo, Jan 25, 2009 20:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

ich habe ein schwerwiegendes Problem.
Ich möchte ein Tool schreiben, das gewisse Bilder "kopieren" kann.

Jetzt dachte ich mir folgendes Schema

writebyte datei2 , readbyte datei1

Datei2 ist eine *.txt datei.

Ich dachte mir, wenn ich sie im nachhinein umbenenne, dann wird es egal sein, scheint aber nicht so.

erst dachte ich, es lag am Code aber ich habe diesen Test (selbstausgedacht) gemacht und es funktioniert auch nicht. Das am Ende erstellte Bild kann nicht geöffnet werden.

nehm beliebige img datei
öffnen mit editor
strg + a , strg + c
dann neues textdokument
öffnen, strg + v
speichern
umbenennen bild.jpg (gleiche Endung wie Source Image)
funktioniert nicht!

ich weiß nicht, warum der gleiche Datensatz nicht funktioniert, wenn man die Endung nur ändert. Kann mir jemand helfen?

Viele Grüße
TimBo
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.
  • Zuletzt bearbeitet von TimBo am So, Jan 25, 2009 22:05, insgesamt einmal bearbeitet

Xaymar

ehemals "Cgamer"

BeitragSo, Jan 25, 2009 20:49
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm, im grunde genommen sollte es funzen solange du keine jpg in png or andersum machsT8auch bmp in jpg usw funktioniert nicht)
Warbseite

the FR3AK

BeitragSo, Jan 25, 2009 20:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich glaube das liegt daran das das Gewusel was in den Bild dateien steht Hex ist welche die dementsprechenden ASCII Zeichen zugeschrieben bekommen, wenn du das Kopierst wird es direkt als ASCII gespeichert und somit unbrauchbar...

Arbeite mit Banks dann sollte es gehen...

Eingeproggt

BeitragSo, Jan 25, 2009 20:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich versteh nicht ganz, was du da händisch herumpfuschen willst, dein Programm-Ansatz funktioniert an sich, habs gerade mit folgendem, lauffähigen Code getestet:

Code: [AUSKLAPPEN]
reader=ReadFile("file.jpg")
writer=WriteFile("kopie.jpg")

While Not Eof(reader)
   WriteByte writer,ReadByte(reader)
Wend

CloseFile reader
CloseFile writer

End


Wo liegt jetzt das Problem? Dass du dir den Zwischenschritt über *.txt sparst? Na da biste sicher ned traurig Smile

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

ozzi789

BeitragSo, Jan 25, 2009 21:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie schon gesagt, dadurch das er es als TXT speichert gehen Daten verloren, dank Ascii, wahrscheinlich werden die 2 Bilder auch nicht mehr genau gleich gross sein Smile
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

TimBo

BeitragSo, Jan 25, 2009 21:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

danke für eure Antworten.

Zitat:
HTTP/1.1 200 OK
Date: Sun, 25 Jan 2009 19:06:15 GMT
Server: Apache/2.2
Last-Modified: Sun, 14 Jan 2007 22:56:09 GMT
ETag: "7802f05b-5344-8e09440"
Accept-Ranges: bytes
Content-Length: 21316
Connection: close
Content-Type: image/jpeg

ÿØÿà JFIF  H H ÿÛ C 




  ÿÛ C  

ÿÀ X " ÿÄ   .....


so sieht der Anfang einer Heruntergeladenen Datei aus, wenn ich diese direkt im JPG speicher, dann gehts natürlich wegen dem Header nicht.
Dann mache ich open with notepad und entferne den Header... und wer hätte es nicht geahnt, es geht immer noch nicht. Dann lade ich das Bild mim IE runter, öffne mit Notepad kopiere das komplette Bild rüber .. und es geht immer noch nicht ^^

Hoffe ihr könnt mir folgen.


mein Quellcode


Code: [AUSKLAPPEN]
   Print "Verbinde..."
tcp = OpenTCPStream("www.sk1980gernsheim.de", 80)
If Not tcp Print "Fehlgeschlagen": WaitKey : End
   Print "Verbunden! Sende Anfrage..."
   WriteLine tcp, "GET http://sk1980gernsheim.de/images/startbild.jpg HTTP/1.0"
   WriteLine tcp, Chr$(10)
   img=WriteFile("startbild.jpg")
   If Eof(tcp) Print "Fehlgeschlagen.": WaitKey: End
      Print "Anfrage gesendet! Warte auf Antwort..."
      While Not Eof(tcp)
         WriteByte img,ReadByte(tcp)
      Wend
      If Eof(tcp) = 1 Then Print "Erfolgreich!" Else Print "Fehler!"
      CloseTCPStream tcp
      WaitKey()
      End           




hoffe ihr könnt es mit dem Quellcode mehr verstehen.

Viele Grüße
TimBo
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

TimBo

BeitragSo, Jan 25, 2009 21:12
Antworten mit Zitat
Benutzer-Profile anzeigen
ozzi789 hat Folgendes geschrieben:
Wie schon gesagt, dadurch das er es als TXT speichert gehen Daten verloren, dank Ascii, wahrscheinlich werden die 2 Bilder auch nicht mehr genau gleich gross sein Smile


sie sind exakt, auf den letzten Byte gleich groß.
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.
 

ChristianK

BeitragSo, Jan 25, 2009 21:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Texteditoren wie Notepad sind nunmal für lesbare Texte gedacht und nicht für Binärdateien.
Das Problem ist, dass in deiner Bilddatei Zeichen vorkommen, die nicht in normalen Text gehören (z.B ASCII 0). Diese Zeichen werden von Notepad in Leerzeichen (ASCII 32) geändert, sodass die Datei als Bild unbrauchbar wird. Wenn du die Datei statt dessen mit einem Hex-Editor abspeicherst, solltest du sie auch wieder als Bild öffnen können.
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

Eingeproggt

BeitragSo, Jan 25, 2009 21:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, der http-Header soll mal nicht das Problem sein, mach folgendes:
Nach
Code: [AUSKLAPPEN]
Print "Anfrage gesendet! Warte auf Antwort..."

schreibst du
Code: [AUSKLAPPEN]
Repeat
  txt$=ReadLine(tcp)
Until txt$=""


und dann kommt dein Code wie du ihn schon hast:

Code: [AUSKLAPPEN]
While Not Eof(tcp)
  WriteByte img,ReadByte(tcp)
Wend
;....


Sollte funktionieren.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

TimBo

BeitragSo, Jan 25, 2009 22:05
Antworten mit Zitat
Benutzer-Profile anzeigen
cool, es Funktioniert !!
Vielen Dank !!
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group