Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Tworzenie obrazków w php
Forum PHP.pl > Forum > Przedszkole
dark_root
Witam. Próbuje stworzyć obrazek w php jednak, gdy zapisze plik to wyskakuje mi taki błąd "Obrazek http://smsy.ugu.pl/aa.php nie może zostać wyświetlony, ponieważ zawiera błędy.". Nie wiem czy na moim serwerze jest zainstalowana biblioteka GD ponieważ kożystam z darmowego serwera ugu. Czy ewentualny brak biblioteki jest przyczyną tego błedu czy też coś innego? Kod obrazka jest na 100% dobry bo brany z kursu i innym chodzi. I drugie moje pytanie brzmi czy obrazki pisane w php bedą miały rozszerzenie php czy mogą mieć jpg bo spotałem się z obrazkiem www.hackme.pl/Pedro/hackme.jpg który jak widac ma rozszerzenie jpg i wykonuje kod php zapisujące dane odwiedzających do tego pliku www.hackme.pl/Pedro/info.txt
I nie wiem czy obrazek ten został napisany tak jak ja chce to zrobić.
Shili
Nie, myślę, że brak GD nie jest winą, gdyby nie było GD dostałbyś ostrzeżenie o używaniu niezdefiniowanych funkcji.
Pokaż lepiej ten kod, to że kod był w kursie nic nie znaczy.

Co do obrazków i rozszerzeń proponuję mod rewrite.
dark_root
Kod
<?php

// Przyjmijmy, że nazwa starego obrazka znajduje się w zmiennej
// $stary_plik

$rozmiar = GetImageSize($stary_plik);

$stary = ImageCreateFromPNG($stary_plik);

// Zmniejszymy jego rozmiar o 1/3, zobaczmy ile to będzie

$nowa_szerokosc = round($rozmiar['0'] / 3 * 2);
$nowa_wysokosc = round($rozmiar['1'] / 3 * 2);

// Otwieramy nowy obrazek i nadajemy mu czarne tło

$nowy = ImageCreate($nowa_szerokosc, $nowa_wysokosc);

$czarny = ImageColorAllocate($nowy, 0, 0, 0);

// Kopiujemy nowy obrazek
// Określamy kolejno cel, Ľródło, współrzędne lewego, górnego
// roku celu i Ľródła, oraz szerokość i wysokość celu i Ľródła
// Jeśli wymiary różnią się między Ľródłem a celem, dokonane
// będzie przeskalowanie

ImageCopyResized($nowy, $stary, 0, 0, 0, 0, $nowa_szerokosc,
$nowa_wysokosc, $rozmiar['0'], $rozmiar['1']);

// Pozbywamy się starego obrazka

ImageDestroy($stary);

// Wstawiamy tekst
// Liczba dwa określa jedną z 5 wbudowanych czcionek, można też
// dodać własne funkcją ImageLoadFont(). Wstawiamy to w dolnym,
// lewym rogu obrazka

ImageString($nowy, 2, 5, $nowa_wysokosc - 5, "Copyright 2002",
$czarny);

// No to wyświetlamy

header("Content-type: image/png");

ImagePNG($nowy);

ImageDestroy($nowy);

?>
Shili
Oczywiście, że błąd masz w kodzie, jeśli skopiowałeś poprawnie wszystko, co masz w pliku.

Musisz zdefiniować na początku całego pliku zmienną $stary_plik, której wartością jest ścieżka do obrabianego obrazka! Jest to napisane na samym początku.
dark_root
dodałem teraz na początku kodu to
Kod
$stary_plik="commun.jpg";
i dodalem oczywiście obrazek commun.jpg ale błąd sie nie zmienił. Co teraz jest źle?
Shili
U mnie działa na localu.

Względnie wyłączyli raportowanie błędów u siebie na serwerze, dlatego nie widzisz informacji o funkcjach których nie ma. Spytaj się na ichnim forum najlepiej czy jest GD, lub wklej ten kod i daj znać co się pokaże:
  1. <?php
  2. $nowy = ImageCreate(200, 100);
  3. $czarny = ImageColorAllocate($nowy, 0, 0, 0);
  4. header("Content-type: image/png");
  5. ImagePNG($nowy);
  6. ImageDestroy($nowy);
  7. ?>
dark_root
Działa, ukazał się czarny prostokąt. Więc gdzieś mi sie wkradł błąd. Wobec tego mam pytanie jak zrobić, żeby rozszerzenie nie było php tylko jpg tak jak to jest tutaj Link
Babcia@Stefa
Zastosuj pliki .htaccess (mod rewrite)
http://google.com/search?q=mod+rewrite

Dziękuje, Babcia@Stefa
dark_root
a wystarczy żeby plik na serwerze miał rozszerzenie htaccess i nazwe dowolną czy musi miec jakąś specjalną nazwe żeby automatycznie był przeanalizowany przez przeglądarke? Znalazłem taki kod htaccess
Kod
<Files nazwa.jpg>
ForceType application/x-httpd-php
</Files>

O takie cos chodziło?


Umieściłem na serwerze plik htaccess o zawartości takiej jak w wyżej i jak próbuje włączyć plik już o rozszerzeniu jpg to nie otwiera się tylko zaczyna ściągać. Dlaczego tak jest i jak to powinno byc?
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.