Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Tworzenie obrazków w php, Podstawy tworzenia obrazków w php i biblioteki GD
dark_root
post
Post #1





Grupa: Zarejestrowani
Postów: 341
Pomógł: 1
Dołączył: 19.11.2007

Ostrzeżenie: (10%)
X----


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ć.
Go to the top of the page
+Quote Post
Shili
post
Post #2





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Shili 10.07.2008, 12:49:32
Go to the top of the page
+Quote Post
dark_root
post
Post #3





Grupa: Zarejestrowani
Postów: 341
Pomógł: 1
Dołączył: 19.11.2007

Ostrzeżenie: (10%)
X----


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);

?>
Go to the top of the page
+Quote Post
Shili
post
Post #4





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
dark_root
post
Post #5





Grupa: Zarejestrowani
Postów: 341
Pomógł: 1
Dołączył: 19.11.2007

Ostrzeżenie: (10%)
X----


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?
Go to the top of the page
+Quote Post
Shili
post
Post #6





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
dark_root
post
Post #7





Grupa: Zarejestrowani
Postów: 341
Pomógł: 1
Dołączył: 19.11.2007

Ostrzeżenie: (10%)
X----


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
Go to the top of the page
+Quote Post
Babcia@Stefa
post
Post #8





Grupa: Zarejestrowani
Postów: 654
Pomógł: 17
Dołączył: 19.03.2006
Skąd: z kosmosu ;)

Ostrzeżenie: (0%)
-----


Zastosuj pliki .htaccess (mod rewrite)
http://google.com/search?q=mod+rewrite

Dziękuje, Babcia@Stefa


--------------------
Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian
Go to the top of the page
+Quote Post
dark_root
post
Post #9





Grupa: Zarejestrowani
Postów: 341
Pomógł: 1
Dołączył: 19.11.2007

Ostrzeżenie: (10%)
X----


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?

Ten post edytował dark_root 11.07.2008, 19:39:15
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 03:09