![]() |
![]() ![]() |
![]() |
![]() ![]()
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:
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) |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
raczej == Poza tym sprawdź czy plik PNG napewno ma mimetype PNG
Sprawdzasz czy jest png ale i tak zwracasz go jako jpg Poza tym nie masz dolaczonej obsługi przezroczystosci w plikach png. Jeszcze zamiast imagecopy używaj imagecopyresampled Ten post edytował wookieb 25.03.2009, 11:07:05 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 180 Pomógł: 12 Dołączył: 30.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
@up
wiem, że zwracam jako jpeg, to ma jakieś znaczenie jak go zwrócę? imagecopyresampled mi go jakoś deformowało... sprawdzam, czy zadziała. |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 180 Pomógł: 12 Dołączył: 30.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
więc teraz jpegi robi miniaturki, ale kolory są...zmienione, jakby było ich mniej?
png nie ma, jest tylko tekst alternatywny. imagecopyresampled robił złe miniatury, mam ustawione tak: imagecopyresampled($prz, $zrd, 0, 0, 0, 0, $ms, $mw, $szer, $wys); i robi obrazek jest spłaszczony... Ten post edytował kazag 25.03.2009, 11:20:36 |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
zamiast
$prz = ImageCreate($ms,$mw); daj $prz = imagecreatetruecolor($ms,$mw); |
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
imagecopyresampled robił złe miniatury, mam ustawione tak: imagecopyresampled($prz, $zrd, 0, 0, 0, 0, $ms, $mw, $szer, $wys); i robi obrazek jest spłaszczony... No nic dziwnego skoro nie umiesz wyliczyc odpowiednich wartosci rozmiarów miniaturki Kod if(!$ms)
$ms=250; if(!$mw) $mw=143; Ten post edytował wookieb 25.03.2009, 11:30:17 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 320 Pomógł: 53 Dołączył: 18.09.2007 Skąd: Radom Ostrzeżenie: (0%) ![]() ![]() |
no jeśli uploadujesz obrazki innych rozmiarów niż podane na stało to nic dziwnego. Wysokośc i szerokość przelicz procentowo
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 180 Pomógł: 12 Dołączył: 30.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
@up i upUp
Ja rozumiem. Ale chce mieć wycięty fragment z lewego górnego rogu... nie chce mieć miniatury z obrazu o szerokości np. 1024 px, bo to nie wyglada tak, jak powinno, chce mięc WYCIĘTY fragment. kod wyglada 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]; if($_FILES['obrazek']['type']=='image/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); } ?> Jpeg już działa poprawnie, pomógł dla Spawnma. Problem jeszcze tylko z png... |
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
zamiast imagecopy daj imagecopyresampled
|
|
|
![]()
Post
#11
|
|
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 04:25 |