Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: imagepng() - jak zrobić, by nie zapisał na FTP?
Forum PHP.pl > Forum > PHP
GoldeNx3
Witam, zrobiłem sobie prosty generator sygnatur pobierający dane z bazy. Ale mam pytanie, czy da się zrobić tak, by obrazek nie zapisywał się na FTP, tylko pobierał dane z linku za pomocą GET. Bo tak, to on się zapisuje i nie da się go zmienić, a ja bym chciał, by ten obrazek pobierał sam dane, da się to wykonać?
_Borys_
Możesz stworzyć formularz typu get, w nim podajesz wszelkie dane do stworzenia obrazka, następnie skrypt php odbiera formularz i pobiera z tablicy $_GET dane i według tego tworzy obrazek wyświetlając na stronie bez zapisywania. Jeśli dobrze zrozumiałem.
StrefaPi
manual php.net:
  1. imagepng ( resource $image [, string $filename [, int $quality [, int $filters ]]] )


czyli jeżeli nie podasz drugiego argumentu w funkcji imagepng, to plik nie zapisze się na dysku...
GoldeNx3
A jak go potem wyświetlić? Bo tak mam, pobieram przez GET, ale nie wiem jak go potem wyświetlić.
StrefaPi
nie rozumiem nic, ale chyba podstaw brakuje ;)

masz plik obrazek.php w środku kod, który pobiera dane z bazy danych i wyświetla za pomocą imagepng();

każde odwołanie do obrazek.php powoduje wyświetlenie tego obrazka, z nowo pobranymi danymi np. z bazy danych czy ze zmiennej GET...
GoldeNx3
  1. <?php
  2.  
  3. $nick = ($_GET['nick']);
  4. $klasa = ($_GET['klasa']);
  5.  
  6. $im = imagecreatefrompng('sygnatura1.png');
  7. $kolor = imagecolorallocate($im, 255, 255, 255);// kolor tekstu
  8.  
  9. imagestring($im, 10, 45, 19, $nick, $kolor); //rozmiar, od lewej, od gory
  10. imagestring($im, 2, 53, 38, $klasa, $kolor); //rozmiar, od lewej, od gory
  11. imagestring($im, 2, 64, 55, $row[4], $kolor); //rozmiar, od lewej, od gory
  12. imagestring($im, 2, 60, 72, $row[5], $kolor); //rozmiar, od lewej, od gory
  13.  
  14. imagepng($im);
  15.  
  16. ?>


Oczywiście usunąłem zbędne dane które pobiera się z bazy.

Efekt:

http://screenshooter.net/7007695/Screeaam_16 Tak wygląda strona po wygenerowaniu.
Natomiast jak zapisuje ścieżkę zdjęcia to już działa normalnie.
StrefaPi
było kilka razy na tym forum... :/ brakuje:
  1. header('Content-Type: image/png');
_Borys_
Jeśli na stronie będzie sam obrazek to musisz dodać
  1. header("Content-type: image/png");

najlepiej przed tworzeniem obrazka
EDIT biggrin.gif
GoldeNx3
Próbowałem to już:
http://screenshooter.net/7007695/Screeaam_17

Nawet na początku dałem ob_start(); a na końcu ob_end_flush(); ale dalej to samo.
StrefaPi
też było kilka razy... masz BOM w pliku - zapisz plik php bez BOM np. TextWranglerem albo Notepad++
GoldeNx3
Właśnie teraz to sobie przypomniałem, działa, dzięki Wam wielkie! biggrin.gif
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.