Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][gd] Problem z tworzeniem miniatur, jpeg - brak miniatury, png - czarna miniatura
kazag
post
Post #1





Grupa: Zarejestrowani
Postów: 180
Pomógł: 12
Dołączył: 30.04.2007

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


Witam ponownie,
mam skrypt tworzący miniatury z wczesniej wysłanych na serwer obrazków. Miniatury są tworzone w ten sposób, że z oryginalnego obrazka wycinany jest fragment o wysokosci i szerokosci ustalonej (wiec to własciwie nie miniatura, a fragment obrazka). Mam do tego taki skrypt:
  1. <?php
  2. //pobieram zmienną
  3. $obrazek="img/arts/".$_GET['o'];
  4.  
  5. //ustalam wysokosci i szerokosc miniatury
  6. if(!$ms)
  7. $ms=250;
  8. if(!$mw)
  9. $mw=143;
  10.  
  11. //pobieram dane obrazka
  12. $rozmiar=GetImageSize($obrazek);
  13. $szer=$rozmiar[0];
  14. $wys=$rozmiar[1];
  15.  
  16. //miniaturuje ;p
  17.  
  18. if($_FILES['obrazek']['type']='png')
  19. {
  20. $zrd = ImageCreateFromPng($obrazek);
  21. $prz = ImageCreate($ms,$mw);
  22. imagecopy($prz, $zrd, 0, 0, 0, 0, $ms, $mw);
  23. header('Content-type: image/jpeg');
  24. ImageJpeg($prz, null, 100);
  25. ImageDestroy($zrd);
  26. ImageDestroy($prz);
  27. }
  28. else
  29. {
  30. $zrd = ImageCreateFromJpeg($obrazek);
  31. $prz = ImageCreate($ms,$mw);
  32. imagecopy($prz, $zrd, 0, 0, 0, 0, $ms, $mw);
  33. header('Content-type: image/jpeg');
  34. ImageJpeg($prz, null, 100);
  35. ImageDestroy($zrd);
  36. ImageDestroy($prz);
  37. }
  38. ?>


Problem w tym, że ongiś skrypt działał, a dziś nie... (nie pamietam, może coś zmieniałem, ale to mało istotne, ważne, że teraz nie działa). Zamiast obrazka .jpg dostaje jedynie tekst alternatywny, a zamiast .png dostaje czarny prostokąt... W czym rzecz? Źle używam jakiejś funkcji? Na gd się kompletnie nie znam, ten skrypt pisałem z dużą pomocą ksiazki/manuala, wiec może coś skaszaniłem, tylko co?

aha - chmody są ustawione dla folderow, w ktorym są obrazki na 777.

Z góry dzięki za odpowiedź (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kazag
post
Post #2





Grupa: Zarejestrowani
Postów: 180
Pomógł: 12
Dołączył: 30.04.2007

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


nie pomogło, ciagle dostaje jedynie tekst alternatywny, a jak wezme "pokaz obrazek" to wyswietla sie tylko link, mało tego, na belce jest napisane, ze to obrazek JPEG...

wydaje mi się więc, że problem jest z tym ifem.

rozwiązanie było banalne...plik nie był przesyłany, wiec $_FILES nic nie dawało...
wyglada to tak:
Kod
<?php
$obrazek="img/arts/".$_GET['o'];

if(!$ms)
$ms=250;
if(!$mw)
$mw=143;

$rozmiar=GetImageSize($obrazek);
$szer=$rozmiar[0];
$wys=$rozmiar[1];

$typ=basename($obrazek);
$pliki=explode(".", $typ);

if($pliki[1]=='png')
{
$zrd = ImageCreateFromPng($obrazek);
$prz = imagecreatetruecolor($ms,$mw);
imagecopy($prz, $zrd, 0, 0, 0, 0, $ms, $mw);
header('Content-type: image/png');
imagepng($prz);
ImageDestroy($zrd);
ImageDestroy($prz);
}
else
{
$zrd = ImageCreateFromJpeg($obrazek);
$prz = imagecreatetruecolor($ms,$mw);
imagecopy($prz, $zrd, 0, 0, 0, 0, $ms, $mw);
header('Content-type: image/jpeg');
ImageJpeg($prz, null, 100);
ImageDestroy($zrd);
ImageDestroy($prz);
}
?>


ogromne dzięki za pomoc wszystkim (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował kazag 25.03.2009, 11:50:45
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 3.10.2025 - 03:43