PHP komische Zeichen anstatt Bild

Gast #4857789
Lesenswert?

Hallo zusammen
Wie im Titel schon steht bekomm wenn ich ein bild ausgeben will nur 
komische Zeichen wie diese 
(8%�1#(�Y����b9NEB<�GJfRx���y�+^��~�>�"��[G53[�).

Code
1
$IconUrl = "images/itemicons/" . $json_BotInv[0][4] . ".png";
2

3
$item = imagecreatefrompng($IconUrl);
4

5
imagepng($item);

Was ist der fehler????


MFG
Joel
Gast #4857794
Lesenswert?

Habs gemacht sieht jetzt so aus:
1
<?php
2
    header("Content-Type: image/png");
3

4
    require 'steamauth/steamauth.php';
5
    require 'steamauth/userInfo.php';
6
    require 'steamauth/BotInv.php';
7
    require 'ItemIconScript.php';
8

9
    
10

11
    $json_BotInv = @BotInventory();
12

13
    @GetItemIcons($json_BotInv);
14

15
    //$IconUrl = @EchoItemIcon($json_BotInv);
16

17
    $IconUrl = "images/itemicons/" . $json_BotInv[0][4] . ".png";
18

19
    $item = imagecreatefrompng($IconUrl);
20

21
    imagepng($item);

jetzt habe ich aber einen weissen browser.........
Gast #4858270
Lesenswert?

Kein Fehler
Der Browser ist halt weiss und oben links hats halt das Zeichen wenn ein 
Bild nicht richtig dargestellt werden konnte.

Wenn noch was schauen musst Link : csgotrades.org

(lange Ladezeit weil ich noch test scripts in der index datei hab die am 
anfang ausgefürt werden...)
Gast #4858298
Lesenswert?

Hats wirklich gegeben aber sind komisch....

Code
1
$IconUrl = "images/itemicons/" . $json_BotInv[0][4] . ".png";
2

3
$item = imagecreatefrompng($IconUrl);
4

5
imagepng($item);

Hab mal die IconUrl geechot und bekam: 
images/itemicons/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4N 
UX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpopuP1FAR17OORIQJF_tW7mb-GkvP 
9JrafxGkDv8B13LyT8N2l2QHirhI4az2mINSVclQ9MFGBrFK5x-3mgMW5uIOJlyWQ8lzxbw. 
png

hab dann im error log gekuckt da war der Link nur : 
images/itemicons/.png

Was den der Fehler???
Gast #4858473
Lesenswert?

Die Url/Pfad zu dem BIld habe ich gespeichert. Die Scripts die ich 
erwähnt habe downloaden das Bild und bearbeiten es auf die richtige 
grösse und schreiben ein Text drauf. Dann wird das Bild unter 
images/itemicons/........png gespeichert. Den Link habe ich gespeichert. 
Danach will ich das gespeicherte Bild ausgeben aber dann kommt der 
fehler...
#4858480
Lesenswert?

http://csgotrades.org/images/itemicons/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpopuP1FAR17OORIQJF_tW7mb-GkvP9JrafxGkDv8B13LyT8N2l2QHirhI4az2mINSVclQ9MFGBrFK5x-3mgMW5uIOJlyWQ8lzxbw.png

Geht doch...
Ist also ein Fehler im HTML-Code... Du gibst die URL zum Bild ganz oben 
im Code einfach aus, ohne IMG-Tag.
1
    
2
images/itemicons/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpopuP1FAR17OORIQJF_tW7mb-GkvP9JrafxGkDv8B13LyT8N2l2QHirhI4az2mINSVclQ9MFGBrFK5x-3mgMW5uIOJlyWQ8lzxbw.png
3
<!DOCTYPE html>
4
<html>
5
    <head>

Edit: Ich würde dir auch noch wärmstens empfehlen, deine Seite mal hier 
durchchecken zu lassen: https://validator.w3.org/ Es sind wohl einige 
Fehler enthalten.
Gast #4858499
Lesenswert?

Hallo domeg

Wenn du denn thread gelesen hättest wäre dir aufgefallen dass ich den 
Link geechot hab um zu vergleichen was im fehler Log stan und was in der 
Variable stand...

Hier ist der ganze php Code bevor der Html teil anfängt:
1
<?php
2
    session_start();
3
    header("Content-Type: image/png");
4

5
    require 'steamauth/steamauth.php';
6
    require 'steamauth/userInfo.php';
7
    require 'steamauth/BotInv.php';
8
    require 'ItemIconScript.php';
9

10
    $json_BotInv = @BotInventory();
11

12
    @GetItemIcons($json_BotInv);
13

14
    //$IconUrl = @EchoItemIcon($json_BotInv);
15

16
    $IconUrl = "images/itemicons/" . $json_BotInv[0][4] . ".png";
17

18
    echo $IconUrl;
19

20
    $item = imagecreatefrompng($IconUrl);
21

22
    imagepng($item);
23

24
    if(isset($_SESSION['steamid'])){
25
        $id = $_SESSION['steamid'];
26
    }
27
    else{
28
        #Not logged in
29
    }
30
?>
#4858513
Lesenswert?

Und wo ist dann das Problem? Der Textoverlay hat wohl funktioniert, das 
abspeichern auch.

Oder willst du in ein und derselben Seite (index.php) das Bild mit PHP 
bearbeiten & ausgeben UND HTML-Code ausgeben? Das geht nicht.

Verwende für die Bearbeitung/Verarbeitung der Bilder ein eigenes Script 
oder eine abweichende URL, z.B. image.php oder index.php?what=img .
Gast #4858521
Lesenswert?

Hab dich wohl falsch verstanden....

Mit @GetItemIcons tu ich dies ja. Ich hab dann auch vor das script um 
die Icons auszugeben in eine andere Datei zu verbannen. Ich habe es auf 
der Index.php datei weil da die Fehler sofort auf der seite sichtbar 
sind.

Da ich mich mit PHP, HTML, CSS, JS, JQuery usw. ned gut auskenne 
müsstets du mir das was ich falsch gemacht habe genau erklären und auch 
sagen was man dagegen tun kann

MFG
Joel
#4858532
Lesenswert?

Joel schrieb:
> Mit @GetItemIcons tu ich dies ja.

Da liest du vermutlich die Pfade zu den Bildern ein.

Mit http://php.net/manual/de/function.imagecreatefrompng.php liest du 
die PNG-Bilder in PHP ein und mit 
http://php.net/manual/de/function.imagepng.php gibst du die binären 
Daten direkt wieder aus, ohne sie zu bearbeiten.

Meine Annahme ist daher, dass du die Bilder schon vorher oder woanders 
bearbeitet und abgespeichert hast und nur noch anzeigen lassen willst.

Also brauchst du nur ein IMG-Tag in HTML mit dem passenden Pfad 
auszugeben.
Etwa:
1
<?php
2
    session_start();
3

4
    require 'steamauth/steamauth.php';
5
    require 'steamauth/userInfo.php';
6
    require 'steamauth/BotInv.php';
7
    require 'ItemIconScript.php';
8

9
    $json_BotInv = @BotInventory();
10

11
    @GetItemIcons($json_BotInv);
12

13
    //$IconUrl = @EchoItemIcon($json_BotInv);
14

15
    $IconUrl = "images/itemicons/" . $json_BotInv[0][4] . ".png";
16

17
    echo "<img src=\"" . $IconUrl . "\"></img>";
18

19
    if(isset($_SESSION['steamid'])){
20
        $id = $_SESSION['steamid'];
21
    }
22
    else{
23
        #Not logged in
24
    }
25
?>

Du kannst nicht für deine Datei als ContentType PNG festlegen und 
gleichzeitig HTML-Text ausgeben, das geht nicht.
ContentType PNG brauchst du nur, wenn du auf dieser URL NUR das Bild mit 
imagepng() und sonst nichts anders ausgibst.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren