<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Content-Type: image&#x2F;png als Bild abspeichern]]></title><description><![CDATA[<p>Halli hallo.</p>
<p>Ich versuchs kurz und bündig zu erklären.</p>
<p>Mein Programm baut eine HTTP Verbindung zu einem Webserver auf.</p>
<p>Dort geife ich mit &quot;GET /img.php HTTP/1.1&quot; auf eine Captcha zu.</p>
<p>Zurück bekomme ich dann den Inhalt des Bildes samt Headers, sprich derartiges wie zB. &quot;Content-type: image/png&quot;.</p>
<p>Per ofstream will ich besagten Inhalt ganz einfach als verwendbare .png bzw. .bmp Datei abspeichern.</p>
<p>Leider funktioniert es weder wenn ich die Headers im Sourcecode drinlasse, noch wenn ich sie entferne und praktisch nur noch wirres Kryptisch speicher (was bei einem Bild ja nicht verkehrt ist).</p>
<p>Wie gesagt - es funktioniert leider nicht.</p>
<p>Muss ich den Sourcecode erst noch encrypten bzw. decrypten, oder was ist zu tun?</p>
<p>Lieben Gruß und schon mal Danke im Voraus,</p>
<p>paSe</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/236324/content-type-image-png-als-bild-abspeichern</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 01:24:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/236324.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 13 Mar 2009 14:54:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Content-Type: image&#x2F;png als Bild abspeichern on Fri, 13 Mar 2009 14:54:25 GMT]]></title><description><![CDATA[<p>Halli hallo.</p>
<p>Ich versuchs kurz und bündig zu erklären.</p>
<p>Mein Programm baut eine HTTP Verbindung zu einem Webserver auf.</p>
<p>Dort geife ich mit &quot;GET /img.php HTTP/1.1&quot; auf eine Captcha zu.</p>
<p>Zurück bekomme ich dann den Inhalt des Bildes samt Headers, sprich derartiges wie zB. &quot;Content-type: image/png&quot;.</p>
<p>Per ofstream will ich besagten Inhalt ganz einfach als verwendbare .png bzw. .bmp Datei abspeichern.</p>
<p>Leider funktioniert es weder wenn ich die Headers im Sourcecode drinlasse, noch wenn ich sie entferne und praktisch nur noch wirres Kryptisch speicher (was bei einem Bild ja nicht verkehrt ist).</p>
<p>Wie gesagt - es funktioniert leider nicht.</p>
<p>Muss ich den Sourcecode erst noch encrypten bzw. decrypten, oder was ist zu tun?</p>
<p>Lieben Gruß und schon mal Danke im Voraus,</p>
<p>paSe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1679391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1679391</guid><dc:creator><![CDATA[unlimieD.paSe]]></dc:creator><pubDate>Fri, 13 Mar 2009 14:54:25 GMT</pubDate></item><item><title><![CDATA[Reply to Content-Type: image&#x2F;png als Bild abspeichern on Fri, 13 Mar 2009 15:03:51 GMT]]></title><description><![CDATA[<p>Gibt ganz viele Möglichkeiten, das HTTP lässt viele Möglichkeiten zu. Aber ganz klar muss du zuerst mal HTTP-Header vom Content trennen. Wie das HTTP genau funktioniert, steht hier:<br />
<a href="http://ietfreport.isoc.org/rfc2600-2699.html#rfc2616" rel="nofollow">http://ietfreport.isoc.org/rfc2600-2699.html#rfc2616</a></p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1679398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1679398</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 13 Mar 2009 15:03:51 GMT</pubDate></item><item><title><![CDATA[Reply to Content-Type: image&#x2F;png als Bild abspeichern on Fri, 13 Mar 2009 15:14:25 GMT]]></title><description><![CDATA[<p>Ja gut.</p>
<p>Da wird dann halt beschrieben, was für eine Aufgabe welcher Header hat.</p>
<p>Den Großteil davon kann man wohl auch so nachvollziehen.</p>
<p>Das Manual mag interessant sein - keine Frage - nur wie es mir dabei helfen soll, nach der Headertrennung vom Sourcecode den Sourcecode nutzbar zu machen, verstehe ich nicht.</p>
<p>Ich danke Dir trotzdem!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1679418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1679418</guid><dc:creator><![CDATA[unlimieD.paSe]]></dc:creator><pubDate>Fri, 13 Mar 2009 15:14:25 GMT</pubDate></item><item><title><![CDATA[Reply to Content-Type: image&#x2F;png als Bild abspeichern on Fri, 13 Mar 2009 16:42:57 GMT]]></title><description><![CDATA[<p>1. Dort drin wird auch beschrieben, wie man den Content und die Header richtig trennt.<br />
2. Dort drin wird auch beschrieben, wie man weiss, wann etwas kodiert und und wie es kodiert ist.<br />
3. Eine Übermittlung kann auf viele unterschiedliche Arten passieren. So kann es auch sein, dass es Chunks sind, welche übermittelt werden. In diesem RFC wird beschrieben, wie man daraus wieder ein ganzes macht.<br />
4. usw. Das HTTP ist halt nicht so einfach, wie man es sich vielleicht denken mag. Es gibt viele Möglichkeiten, welche man berücksichtigen muss. Wenn du wirklich direkt mit dem HTTP arbeiten willst, dann musst du dieses auch kennen, da führt kein Weg dran vorbei.</p>
<p>Aber vielleicht wäre für dich eher sowas wie CURL von Interesse:<br />
<a href="http://curl.haxx.se/libcurl/" rel="nofollow">http://curl.haxx.se/libcurl/</a><br />
bzw. der C++ Wrapper:<br />
<a href="http://curl.haxx.se/libcurl/cplusplus/" rel="nofollow">http://curl.haxx.se/libcurl/cplusplus/</a></p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1679490</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1679490</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 13 Mar 2009 16:42:57 GMT</pubDate></item><item><title><![CDATA[Reply to Content-Type: image&#x2F;png als Bild abspeichern on Fri, 13 Mar 2009 17:51:09 GMT]]></title><description><![CDATA[<p>Ok - ich muss gestehen, ich hab mir dieses 100 Seiten lange PDF nicht komplett durchgelesen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";D"
      alt="😉"
    /></p>
<p>Ich geh an die Sache mal anders ran ...</p>
<p>Response Headers:</p>
<pre><code>HTTP/1.1 200 OK
Date: Fri, 13 Mar 2009 18:07:28 GMT
Server: Apache
X-Powered-By: PHP/5.2.1
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: image/png
</code></pre>
<p>Date, Server, X-Powered-By und Expires sind Header die wirklich nicht erklärt werden müssen!</p>
<p>Cache-Control händelt die Auslagerung.<br />
Ebenso das no-cache Pragma.<br />
Keep-Alive setzt die maximale Timeoutzeit bis die Verbindung unterbrochen wird.<br />
Connection hat mit der Verbindungsaufrechthaltung zu tun - in diesem Fall bleibt sie offen bis das Timeout abläuft.<br />
Transfer-Encoding sagt nur, dass der Server so lange Daten sendet bis das Ende erreicht ist und er deshalb noch kein genaue Content-Length geben kann.</p>
<p>Wenn man sich das jetzt mal ansieht, stellt man recht schnell fest, dass der einzige Header, der was mit der Kodierung zu tun haben kann Content-Type ist.<br />
Hier wird jedoch auch nur festgelegt, welches Format der Sourcecode ist, undzwar PNG.</p>
<p>Genau an dem Punkt war ich aber bereits als ich diesen Thread eröffnet habe und ich sage dir ganz klar: Das ist ein Livecapture aus Wireshark.</p>
<p>Ich habe weder Headers vergessen noch welche hinzugefügt, sondern schlicht aus dem TCP Stream kopiert - mehr wird nicht gesendet.</p>
<p>Dass der Content erst nach dem doppelten Zeilenumbruch anfängt, ist mir übrigens auch bewusst - wie ich also die Headers vom Sourcecode trenne weiß ich.</p>
<p>Und genau damit komm ich jetzt wieder auf meine ursprüngliche Frage zurück, die im Grunde genommen nur heisst:</p>
<p>Muss man diesen Sourcecode, den Sourcecode des PNG Bildes, noch (de-)kodieren um den endgültigen Code zum Abspeichern des Bildes zu bekommen?<br />
Denn ohne eine Bearbeitung des PNG Sourcecodes kann ich das Bild nicht öffnen - und Nein!, wie man ein PNG Bild (de-)kodiert steht bestimmt nicht in der HTTP Doku. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Uff, das las sich evtl. gerade etwas aggressiv - ich meine das um gottes Willen nicht böse, nur fühle ich mich zZ irgendwie missverstanden. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Lieben Gruß,</p>
<p>paSe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1679535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1679535</guid><dc:creator><![CDATA[unlimieD.paSe]]></dc:creator><pubDate>Fri, 13 Mar 2009 17:51:09 GMT</pubDate></item><item><title><![CDATA[Reply to Content-Type: image&#x2F;png als Bild abspeichern on Fri, 13 Mar 2009 17:59:26 GMT]]></title><description><![CDATA[<p>unlimieD.paSe schrieb:</p>
<blockquote>
<p>Uff, das las sich evtl. gerade etwas aggressiv - ich meine das um gottes Willen nicht böse, nur fühle ich mich zZ irgendwie missverstanden. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
</blockquote>
<p>Aggressiv? Nein, aber ich werde gleich aggressiv <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Wieso zum GEIER liest du nicht einfach dieses verdammte RFC durch, wenn du mit HTTP arbeiten willst. Du nimmst da einfach Dinge an, welche gar nicht stimmen! Bestes Beispiel:</p>
<p>unlimieD.paSe schrieb:</p>
<blockquote>
<p>Transfer-Encoding sagt nur, dass der Server so lange Daten sendet bis das Ende erreicht ist und er deshalb noch kein genaue Content-Length geben kann.</p>
</blockquote>
<p>Nein, eben nicht. Wenn du das RFC gelesen hättest, wüsstest du, dass dies unteranderem auch heisst, dass im Content selber noch Hex-Zahlen vorkommen, welche jeweils die Längen der Chunks angeben.</p>
<p>Hier kann man echt nichts mehr anderes sagen als: R T F M<br />
Mit Übersetzung: <a href="http://de.wikipedia.org/wiki/RTFM#R" rel="nofollow">http://de.wikipedia.org/wiki/RTFM#R</a></p>
<p>Wenn du zudem das RFC gelesen hättest, dann wüsstest du auch, dass der Content einfach nur Bytes sind, welche je nach dem kodiert sind. Wie ein PNG aufgebaut ist, ist dem HTTP völlig schnurz egal. Trotzdem kann es die Bytes kodieren. Aber eben, lies das RFC. Es steht alles dort drin!</p>
<p>Grüssli</p>
<p>PS: Die Aggression sollte man mit einem leichten bemitleidenswertem Lächeln verbinden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1679537</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1679537</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 13 Mar 2009 17:59:26 GMT</pubDate></item></channel></rss>