Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z wyświetlaniem obrazka
Forum PHP.pl > Forum > PHP
Zulus_0000
Witam
Utworzyłem wykres i zapisłem go w pliku $fielname
  1. <?php
  2. .....
  3. image = ImageCreate($ekran_size_x, $ekran_size_y);
  4. ...
  5. $nazwa='zulus';
  6. $DA_POM=strftime("%Y-%m-%d_%H-%M");
  7. $filename = sprintf("".strtolower($nazwa."%d.png",time());
  8. ImagePNG($image,$filename);
  9. printf("<img src='%s'>", $filename);
  10. ImageDestroy($image);
  11. ?>

Obrazek zapisuje się na dysku, niestety obrazka nie mogę wyświetlić na stronie www - pokazuje się strona z danymi i miejscem na obrazek
Najeżdzajac kursorem na ikonkę obrazka i wywołując właściwości dostaję informacje:

Protokół: HTTP
Typ: Brak
Adres: // 192.120.1.1/graf/zulus_1160937158.png
Rozmiar: Brak
Wymiary: 28x30 pikseli
Utworzony: brak
Zmodyfikowany: brak
Obrazki z internetu wyświetla mi, opcje internetowe ( prywatność, zbezpieczenia) sprwadziłem OK.
Może jakieś sugestie co sprawdzić?
1010
A jak ściągniesz obrazek na dysk i próbujesz normalnie go otworzyć to działa?
Zulus_0000
Jeżeli wywołuję obrazek z pliku, gdzie jest czysty html, jest OK
Może coś z konfiguracją php ?
1010
moze maja cos wspolnego z tym te funkcje (wycinek z mojego phpinfo()winksmiley.jpg
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XPM Support enabled
XBM Support enabled
Zulus_0000
Wykonałem
  1. <?php
  2. ?>


GD Support enabled
GD Version bundled (2.0.28 compatible)
FreeType Support enabled
FreeType Linkage with freetype
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled

Moje wątpliwości budzi:
php Variables
ENV["HTTP_ACCEPT"] : image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*

może tu trzeba dodać "image/png" ale w którym configu i gdzie to dopisać?
gszesiek
a mieszałeś coś z konfiguracją? bo jak nie to raczej nie szukaj tam błędów
jak potrafisz go stworzyć i wyświetlić na zwykłej stronie html, to pokaż jeszcze fragment kodu jak próbujesz go wyświetlić na tej stronie co się nie udaje
Zulus_0000
Wywołanie obrazka - kod php (1 mój post)
  1. <?php
  2. printf("<img src='%s'>", $filename);
  3. ?>

ale próbowałem innych
  1. <?php
  2. echo '<img src="'.$filename.'">';
  3. ?>

Nie mogę zrozumieć dlaczego nie wyświetla mi się obrazek, jeżeli wywoluję to z poziomu skryptu, między znacznikami php lub poza nimi. Jeżeli stworzę nowy plik z rozszerzeniem htm i jawnie podam nazwę pliku
  1. <img src="zulus_1160937158.png">
to obrazek mi wyświetla.
Przeanalizowałem posty dot obrazków i wprowadzilem linie dot wysyłania naglowka
  1. <?php.....image = ImageCreate($ekran_size_x, $ekran_size_y);...$nazwa='zulus';
  2. ?>

i dalej
  1. <?php
  2. Header('Content-type: image/png');$DA_POM=strftime("%Y-%m-%d_%H-%M");$filename = sprintf("".strtolower($nazwa."%d.png",time());ImagePNG($image,$filename);printf("<img src='%s'>", $filename);ImageDestroy($image);?>

dostałem komunikat: Warning: Cannot modify header information - headers already sent by (output started at D:\USR\Apache2\htdocs\grafika\G.php:2) in D:\USR\Apache2\htdocs\grafika\G.php on line 581
gszesiek
a próbowałeś nie zapisywać tylko wywołać skrypt php samego obrazka z przeglądarki?
spórbuj, jak ci się wyświetli to pójdziemy dalej, a jak nie to wstaw kod w miarę możliwości nie wywalając środka ( ... )
Zulus_0000
Stworzyłem nowy plik z .php
  1. <?php
  2. echo '<img src="zulus_1160937158.png" />';
  3. ?>

i niestety nie wyświetla obrazka, tylko puste miejsce
myśle, że to chyba coś z konfiguracją Apacha lub php ?
gszesiek
źle mnie zrozumiałeś - chodziło napisanie skryptu z samym obrazkiem, bez html'a
ale skoro
Kod
<?php
echo '<img src="zulus_1160937158.png" />';
?>

to ci nie wyświetla gotowych obrazków, to wybacz - nie wiem sad.gif
a jpg, gif wyświetla?
Zulus_0000
Plików jpg umieszczonych między znacznikami php też nie wyświetla
thornag
Jezeli chcesz w ten sposob wyslac obrazek, to rzeczywiscie musisz uzyc funckcji header(). Zeby moc go wyslac trzeba bufforowac output funckje z rodziny ob_start(). Jednakze jak mike_mech wspominal jest ta zla praktyka, gdyz nie powinno sie wysylac naglowkow po tym jak juz cos do przegladarki jest wyslane, jesli nie ma innego wyjscia aplikacja jest zle napisana smile.gif

W sumie ja w poprzednim projekcie tez korzystalem z bufforowania przy obrazakch tongue.gif Zrob tak:

  1. <?php
  2. Header('Content-type: image/png');$DA_POM=strftime("%Y-%m-%d_%H-%M");$filename = sprintf("".strtolower($nazwa."%d.png",time());ImagePNG($image,$filename);printf("<img src='%s'>", $filename);ImageDestroy($image);
  3. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.