Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Tworzenie miniaturek
Forum PHP.pl > Forum > Przedszkole
adrianozo
Witam wszystkich użytkowników tego forum.
Mam problem, ponieważ wrzucając obrazki na stronę i pomniejszając je w kodzie <img src width height...> stałą szerokością i wysokością nie wygląda to estetycznie. Znalazłem kilka tutoriali na stworzenie funkcji pomniejszania danego obrazka, ale albo nie działały, albo nie rozumiem kodu. Zacząłem coś tam skrobać i mnie zacięło. Założenie jest takie, że podczas dodawania obrazka do katalogu portfolia dodaje oryginalny obrazek, natomiast do katalogu portfolia/miniaturki dodaje obrazek o tej samej nazwie tylko zmniejszony 10 razy. Nie wiem jakich funkcji mam użyć i jak się za to wszystko zabrać. Jest jeszcze jedno pytanie. Czy plik z funkcją musi być w tym samym folderze co miniaturki czy nie koniecznie?
To co napisałem i mnie przyćmiło:

  1. <?
  2. $zdjecia = 'portfolia';
  3. $miniaturki = 'portfolia/miniaturki';
  4. $procent = 0.1;
  5. ?>


I nie wiem co dalej sad.gif

Pozdrawiam,
adrianozo.
krzysztof_kf
Może to ci pomoże Webmade
Spawnm
Poczytaj o GD.
http://blog.spawnm.pl/article/7/Generowanie%20miniaturek
adrianozo
Nie dość, że wyrzucił mi 12 błędów to nie tworzy miniaturek biggrin.gif

  1. <?php
  2. $zdjecia = 'portfolia';
  3. $miniaturki = 'portfolia/miniaturki';
  4. $procent = 0.1;
  5. if($plik_type=='image/gif')
  6. {
  7. $im = @imagecreatefromgif($zdjecia/$nazwa_obrazka);
  8. }
  9. elseif($plik_type=='image/jpeg' or $img['mime']=='image/jpg')
  10. {
  11. $im = @imagecreatefromjpeg($zdjecia/$nazwa_obrazka);
  12. }
  13. elseif($plik_type=='image/png')
  14. {
  15. $im = @imagecreatefrompng($zdjecia/$nazwa_obrazka);
  16. }
  17. $start_szerokosc = $img_start_szerokosc = imagesx($im);
  18. $start_wysokosc = $img_start_wysokosc = imagesy($im);
  19. $max_szerokosc=$start_szerokosc*$procent;
  20. $max_wysokosc=$start_wysokosc*$procent;
  21. if($img_w > $max_width OR $img_h > $max_height)
  22. {
  23. if($img_w > $max_width)
  24. {
  25. $ratio = $img_w / $img_h;
  26. $img_w = $max_width;
  27. $img_h = floor($max_width/$ratio);
  28. }
  29. if($img_h > $max_height)
  30. {
  31. $ratio = $img_h / $img_w;
  32. $img_h = $max_height;
  33. $img_w = floor($max_height/$ratio);
  34. }
  35. $im2 = imagecreatetruecolor($img_w, $img_h);
  36. imagecopyresampled($im2, $im, 0, 0, 0, 0, $img_w, $img_h, $start_szerokosc, $start_wysokosc);
  37. }
  38. else
  39. {
  40. $im2=$im;
  41. }
  42. if($plik_type=='image/gif')
  43. {
  44. imagegif($im2,$miniaturki/$nazwa_obrazka);
  45. }
  46. elseif($plik_type=='image/jpeg' or $img['mime']=='image/jpg')
  47. {
  48. imagejpeg($im2,$miniaturki/$nazwa_obrazka);
  49. }
  50. elseif($plik_type=='image/png')
  51. {
  52. imagepng($im2,$miniaturki/$nazwa_obrazka);
  53. }
  54. imagedestroy($im);
  55. ?>

BŁĘDY:
Kod
Notice: Undefined variable: img in /functions/miniaturka.php  on line 9

Warning: imagesx(): supplied argument is not a valid Image resource in /functions/miniaturka.php on line 17

Warning: imagesy(): supplied argument is not a valid Image resource in /functions/miniaturka.php on line 18

Notice: Undefined variable: img_w in /functions/miniaturka.php on line 21

Notice: Undefined variable: max_width in /functions/miniaturka.php on line 21

Notice: Undefined variable: img_h in /functions/miniaturka.php on line 21

Notice: Undefined variable: max_height in /functions/miniaturka.php on line 21

Notice: Undefined variable: img in //functions/miniaturka.php on line 46

Notice: Undefined variable: nazwa_obrazka in /functions/miniaturka.php on line 52

Warning: Division by zero in /functions/miniaturka.php on line 52

Warning: imagepng(): supplied argument is not a valid Image resource in /functions/miniaturka.php on line 52

Warning: imagedestroy(): supplied argument is not a valid Image resource in /functions/miniaturka.php on line 54
Spawnm
jakie błędy ? pokaż cały kod.
adrianozo
dodaj_do_portfolio.php
  1. <?php
  2. include('functions/filtr.php');
  3. if(!$_SESSION['access'] || !$_SESSION['login'])
  4. {
  5. header('Location: index.php');
  6. }
  7. include('include/db.php');
  8. if (isset($_POST['nazwa']))
  9. {
  10. $nazwa = mysql_real_escape_string($_POST['nazwa']);
  11. $tresc = mysql_real_escape_string($_POST['tresc']);
  12. $adres_strony = mysql_real_escape_string($_POST['adres_strony']);
  13. $technologia = mysql_real_escape_string($_POST['technologia']);
  14. $data_wykonania = date('Y-m-d-G:i:s');
  15. if (isset($_POST['obrazek']))
  16. {
  17. $obrazek = mysql_real_escape_string($_POST['obrazek']);
  18. }
  19. }
  20. if(isset($_POST['nazwa']))
  21. {
  22. echo '<div align="center"><form action="/cpadmin_dodaj_do_portfolio.html" enctype="multipart/form-data" method="post">
  23. <input type="hidden" name="send" value="1">
  24. <br />Nazwa:<br /><input type="text" name="nazwa" value="'.$_POST['nazwa'].'" /><br />
  25. Treść:<br /><textarea name="tresc" cols="50" rows="10" id="textarea" id="textarea">'.$_POST['tresc'].'</textarea><br />';
  26. ?>
  27. <div id="bbc">
  28. <input type="button" onclick="tag('','')" value="URL" class="przycisk_bbc" />
  29. <input type="button" onclick="tag('[small]','[/small]')" value="SMALL" class="przycisk_bbc" />
  30. <input type="button" onclick="tag('[big]','[/big]')" value="BIG" class="przycisk_bbc"/ >
  31. <input type="button" onclick="tag('[p]','[/p]')" value="P" class="przycisk_bbc" />
  32. <input type="button" onclick="tag('
    ','
    ')" value="CENTER" class="przycisk_bbc" />
  33. <input type="button" onclick="tag('','')" value="B" class="przycisk_bbc" />
  34. <input type="button" onclick="tag('','')" value="I" class="przycisk_bbc" />
  35. <input type="button" onclick="tag('','')" value="U" class="przycisk_bbc" />
  36. <input type="button" onclick="tag('')" value="IMG" class="przycisk_bbc" />
  37. <select>
  38. <option class="przycisk_bbc" />ROZMIAR:
  39. <option onclick="tag('','')" class="przycisk_bbc" />1
  40. <option onclick="tag('','')" class="przycisk_bbc" />2
  41. <option onclick="tag('','')" class="przycisk_bbc" />3
  42. <option onclick="tag('','')" class="przycisk_bbc" />4
  43. <option onclick="tag('','')" class="przycisk_bbc" />5
  44. <option onclick="tag('','')" class="przycisk_bbc" />6
  45. <option onclick="tag('','')" class="przycisk_bbc" />7
  46. <option onclick="tag('','')" class="przycisk_bbc" />8
  47. </select>
  48. <select>
  49. <option class="przycisk_bbc" />KOLOR:
  50. <option onclick="tag('','');" class="przycisk_bbc" />BIAŁY
  51. <option onclick="tag('','')" class="przycisk_bbc" />CZARNY
  52. <option onclick="tag('','')" class="przycisk_bbc" />ZIELONY
  53. <option onclick="tag('','')" class="przycisk_bbc" />CZERWONY
  54. <option onclick="tag('','')" class="przycisk_bbc" />NIEBIESKI
  55. <option onclick="tag('','')" class="przycisk_bbc" />POMARAŃCZOWY
  56. <option onclick="tag('','')" class="przycisk_bbc" />ŻÓŁTY
  57. <option onclick="tag('','')" class="przycisk_bbc" />SZARY
  58. </select></div>
  59. <?php
  60. echo '<br />Adres strony:<br><input type="text" name="adres_strony" value="'.$_POST['adres_strony'].'" /><br />
  61. Technologia:<br><input type="text" name="technologia" value="'.$_POST['technologia'].'" /><br />
  62. Miniaturka:<br /><input type="file" name="obrazek" /><br /><br />
  63. <input class="przycisk_admin" name="dodaj" type="submit" value="Dodaj">
  64. <input class="przycisk_admin" name="wyczysc" type="reset" value="Wyczyść">
  65. </form><br /><a style="text-decoration: none;" href="/cpadmin.html">Wróć do Panelu Administratora</a><br /><br /></div>';
  66. }
  67. else
  68. {
  69. echo '<div align="center"><form action="/cpadmin_dodaj_do_portfolio.html" enctype="multipart/form-data" method="post">
  70. <input type="hidden" name="send" value="1">
  71. <br />Nazwa:<br /><input type="text" name="nazwa" value="Nazwa" /><br />
  72. Treść:<br /><textarea name="tresc" cols="50" rows="10" id="textarea" id="textarea">Treść</textarea><br />';
  73. ?>
  74. <div id="bbc">
  75. <input type="button" onclick="tag('','')" value="URL" class="przycisk_bbc" />
  76. <input type="button" onclick="tag('[small]','[/small]')" value="SMALL" class="przycisk_bbc" />
  77. <input type="button" onclick="tag('[big]','[/big]')" value="BIG" class="przycisk_bbc"/ >
  78. <input type="button" onclick="tag('[p]','[/p]')" value="P" class="przycisk_bbc" />
  79. <input type="button" onclick="tag('
    ','
    ')" value="CENTER" class="przycisk_bbc" />
  80. <input type="button" onclick="tag('','')" value="B" class="przycisk_bbc" />
  81. <input type="button" onclick="tag('','')" value="I" class="przycisk_bbc" />
  82. <input type="button" onclick="tag('','')" value="U" class="przycisk_bbc" />
  83. <input type="button" onclick="tag('')" value="IMG" class="przycisk_bbc" />
  84. <select>
  85. <option class="przycisk_bbc" />ROZMIAR:
  86. <option onclick="tag('','')" class="przycisk_bbc" />1
  87. <option onclick="tag('','')" class="przycisk_bbc" />2
  88. <option onclick="tag('','')" class="przycisk_bbc" />3
  89. <option onclick="tag('','')" class="przycisk_bbc" />4
  90. <option onclick="tag('','')" class="przycisk_bbc" />5
  91. <option onclick="tag('','')" class="przycisk_bbc" />6
  92. <option onclick="tag('','')" class="przycisk_bbc" />7
  93. <option onclick="tag('','')" class="przycisk_bbc" />8
  94. </select>
  95. <select>
  96. <option class="przycisk_bbc" />KOLOR:
  97. <option onclick="tag('','');" class="przycisk_bbc" />BIAŁY
  98. <option onclick="tag('','')" class="przycisk_bbc" />CZARNY
  99. <option onclick="tag('','')" class="przycisk_bbc" />ZIELONY
  100. <option onclick="tag('','')" class="przycisk_bbc" />CZERWONY
  101. <option onclick="tag('','')" class="przycisk_bbc" />NIEBIESKI
  102. <option onclick="tag('','')" class="przycisk_bbc" />POMARAŃCZOWY
  103. <option onclick="tag('','')" class="przycisk_bbc" />ŻÓŁTY
  104. <option onclick="tag('','')" class="przycisk_bbc" />SZARY
  105. </select></div>
  106. <?php
  107. echo '<br />Adres strony:<br><input type="text" name="adres_strony" value="Adres strony" /><br />
  108. Technologia:<br><input type="text" name="technologia" value="Technologia" /><br />
  109. Miniaturka:<br /><input type="file" name="obrazek" /><br /><br />
  110. <input class="przycisk_admin" name="dodaj" type="submit" value="Dodaj">
  111. <input class="przycisk_admin" name="wyczysc" type="reset" value="Wyczyść">
  112. </form><br /><a style="text-decoration: none;" href="/cpadmin.html">Wróć do Panelu Administratora</a><br /><br /></div>';
  113. }
  114. if((isset($_POST['dodaj'])))
  115. {
  116. if(empty($_POST["nazwa"]) || empty($_POST["tresc"]) || empty($_POST["adres_strony"]) || empty($_POST["technologia"]) and isset($_POST['nazwa']))
  117. {
  118. echo '<div align="center">Nie wypełniono wszystkich pól.</font><br />';
  119. }
  120. else
  121. {
  122. $plik_tmp = $_FILES['obrazek']['tmp_name'];
  123. $plik_nazwa = $_FILES['obrazek']['name'];
  124. $plik_rozmiar = $_FILES['obrazek']['size'];
  125. $plik_type = $_FILES['obrazek']['type'];
  126. $ext1 = substr( $plik_nazwa, strrpos($plik_nazwa, '.' ) +1 );
  127. if(is_uploaded_file($plik_tmp))
  128. {
  129. if(($ext1 == 'jpg') || ($ext1 == 'JPG') || ($ext1 == 'jpeg') || ($ext1 == 'JPEG') || ($ext1 == 'png') || ($ext1 == 'PNG') || ($ext1 == 'gif') || ($ext1 == 'GIF'))
  130. {
  131. move_uploaded_file($plik_tmp, "portfolia/$plik_nazwa");
  132. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze
  133. <strong>$plik_rozmiar bajtów</strong> został przesłany na serwer!<br /><br />";
  134. $zapytanie = "INSERT INTO `portfolio` (`nazwa`, `tresc`, `adres_strony`, `technologia`, `data_wykonania`, `obrazek`, `adres`) VALUES ('".$nazwa."', '".$tresc."', '".$adres_strony."', '".$technologia."', '".$data_wykonania."', 'portfolia/".$plik_nazwa."', '/portfolio')";
  135. $idzapytania = mysql_query($zapytanie);
  136. $last_insert_id = mysql_insert_id();
  137. $zapytanie2 = 'UPDATE `portfolio` SET `numer`= "'.$last_insert_id.'.html" WHERE `id`="'.$last_insert_id.'"';
  138. $idzapytania2 = mysql_query($zapytanie2);
  139. }
  140. }
  141. else
  142. {
  143. echo '<div style="text-align:center;"><font color="red">Zły format pliku!</font></div><br />';
  144. }
  145. }
  146. if($_POST['send'])
  147. {
  148. if (isset($idzapytania))
  149. {
  150. if($idzapytania === TRUE)
  151. {
  152. echo '<div align="center"><font color="green"><b>Notka została dodana.</b></font></div><br />';
  153. }
  154. else
  155. {
  156. echo '<div style="text-align:center;"><font color="red"><b>Nie udało się dodać notki. Proszę spróbować za jakiś czas!</b></font></div><br />';
  157. }
  158. }
  159. }
  160. }
  161. mysql_close($connect);
  162. include('functions/miniaturka.php');
  163. ?>


miniaturka.php oraz błędy podane są w poście wyżej

Witam wszystkich ponownie smile.gif
Po przeanalizowaniu kilku skryptów tworzenia miniaturek udało mi się coś napisać, ale nie wiem czy poprawnych funkcji użyłem.
Mógłbym prosić o sprawdzenie kodu?
Z góry dziękuje smile.gif

  1. <?php
  2. $plik_nazwa = $_FILES['obrazek']['name'];
  3. $miniaturki = 'portfolia/miniaturki';
  4. $procent = 0.1;
  5. $sp = explode(".", $plik_nazwa);
  6. $rozmiar = getimagesize();
  7. if($sp[1] == "jpeg")
  8. {
  9. $obrazek = imagecreatefromjpeg($miniaturki);
  10. }
  11. elseif($sp[1] == "png")
  12. {
  13. $obrazek = imagecreatefrompng($miniaturki);
  14. }
  15. elseif($sp[1] == "jpg")
  16. {
  17. $obrazek = imagecreatefromjpeg($miniaturki);
  18. }
  19. elseif($sp[1] == "gif")
  20. {
  21. $obrazek = imagecreatefromgif($miniaturki);
  22. }
  23. else
  24. {
  25. echo 'Zły format obrazka';
  26. }
  27. $szerokosc = imagesx($rozmiar);
  28. $wysokosc = imagesy($rozmiar);
  29. $width_po_przeskalowaniu = $szerokosc*$procent
  30. $wysokosc_po_przeskalowaniu = $wysokosc*$procent
  31. $miniaturka = imagecreatetruecolor($szerokosc_po_przeskalowaniu, $wysokosc_po_przeskalowaniu);
  32. $kolor = ImageColorAllocate($miniaturka,8 ,24 ,40);
  33. ImageFill($miniaturka,1,1,$kolor);
  34. imagecopyresampled($miniaturka, $obrazek, 0, 0, 0, 0, $szerokosc_po_przeskalowaniu, $wysokosc_po_przeskalowaniu, $szerokosc, $wysokosc);
  35. @imagejpeg($miniaturka, $miniaturki, 100);
  36. $zapytanie5 = 'UPDATE `portfolio` SET `miniaturka`= "'.$miniaturki.'/'.$miniaturka.'" WHERE `id`="'.filtr($_POST['id']).'"';
  37. $idzapytania5 = mysql_query($zapytanie5);
  38. ?>
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.