Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Przerobienie fukncji
microh
post
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 5.11.2006

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


Jak mogę przerobić tę funkcję, lub z jakim parametrem ja wywołać aby zmniejszone obrazki zapisywały sie w katalogu obrazki/

Dotychczas probowałem:
  1. <?php
  2. $elo = resizeImage($_POST['miniaturka'],130,97,'obrazki/'.$kod);
  3. ?>


ale to dawalo tylko błąd.

Proszę o instrukcje, oto wspomniana funkcja:

  1. <?php
  2. function resizeImage($source, $max_x, $max_y, $save_image, $jpeg_quality = 97)
  3. {
  4.  /*
  5. * source - obrazek jpeg
  6. * max_x - maksymalna szerokosc pomniejszonego obrazka
  7. * max_y - maksymalna dlugosc pomniejszonego obrazka
  8. * save_image - nazwa pliku do ktorego zostanie zapisany nowy obrazek
  9. * jpeg_quality - jakosc powstalego obrazu jpeg - jezeli bedzie inny to argument jest nie wazny (domyslnie 100)
  10. */
  11.  
  12. if(imgType($source) == 'IMAGETYPE_JPEG')
  13. {
  14.  $img_src = imagecreatefromjpeg($source);
  15. }
  16. elseif(imgType($source) == 'IMAGETYPE_GIF')
  17. {
  18.  $img_src = imagecreatefromgif($source);
  19. }
  20. elseif(imgType($source) == 'IMAGETYPE_PNG')
  21. {
  22.  $img_src = imagecreatefrompng($source);
  23. }
  24. else
  25. {
  26.  die('Błąd!! Akceptowane typy obrazków to: JPG/JPEG, GIF, PNG');
  27. }
  28.  
  29.  $image_x = imagesx($img_src);
  30.  $image_y = imagesy($img_src);
  31.  if($image_x > $image_y) // Landscape
  32.  {
  33. $ratio_x = ($image_x > $max_x) ? $max_x/$image_x : 1;
  34. $ratio_y = $ratio_x;
  35. $move = 'y';
  36.  }
  37.  else // Portrait
  38.  {
  39. $ratio_y = ($image_y > $max_y) ? $max_y/$image_y : 1;
  40. $ratio_x = $ratio_y;
  41. $move = 'x';
  42.  }
  43. $new_x = $image_x*$ratio_x;
  44. $new_y = $image_y*$ratio_y;
  45.  
  46. $move_x = ($move == 'x') ? ($max_x-$new_x)/: 0;
  47. $move_y = ($move == 'y') ? ($max_y-$new_y)/: 0;
  48.  
  49. $new_img = imagecreatetruecolor($max_x, $max_y);
  50. $background = imagecolorallocate($new_img, 255, 255, 255);
  51. imagefill($new_img, 0, 0, $background);
  52. imagecopyresampled($new_img, $img_src, $move_x, $move_y, 0, 0, $new_x, $new_y, $image_x, $image_y);
  53.  
  54. if(imgType($save_image) == 'IMAGETYPE_JPEG')
  55. {
  56.  imagejpeg($new_img, $save_image, 100);
  57. }
  58. elseif(imgType($save_image) == 'IMAGETYPE_GIF')
  59. {
  60.  imagegif($new_img,$save_image);
  61. }
  62. elseif(imgType($save_image) == 'IMAGETYPE_PNG')
  63. {
  64.  imagepng($new_img, $save_image);
  65. }
  66.  
  67. }
  68. ?>


Ten post edytował microh 26.10.2007, 09:10:38


--------------------
Kobiety są jak pixele - ładne tylko z daleka!
Kobieta $zmienną jest ;D

Fuck all my project !!!!!
Go to the top of the page
+Quote Post
porady-it.pl
post
Post #2





Grupa: Zarejestrowani
Postów: 89
Pomógł: 20
Dołączył: 13.05.2007
Skąd: Warszawa

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


Wiesz ten fragment kodu to troszkę za mało. Rozumiem że w $_POST[miniaturka] przechowujesz nazwę miniaturki która znajduje się w tym samym katalogu co skrypt. Jeśli byś mógł to zamieść także jaki błąd się generuje.


--------------------
Kurs Video PHP i MySQL, porady-it.pl - gotowe rozwiązania dla webmasterów
Go to the top of the page
+Quote Post
Cezar708
post
Post #3





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


Pierwszym parametrem powinna być ścieżka do pliku, który chcesz przerobić
Cytat(microh @ 26.10.2007, 07:53:21 ) *
  1. <?php
  2. $elo = resizeImage($_POST['miniaturka'],130,97,'obrazki/'.$kod);
  3. ?>

nie wiem tego na pewno, ale na 90% jestem przekonany, że w $_POST['miniaturka'] nie przekazujesz ścieżki do pliku. Ścieżka musi być do pliku, który znajduje się na serwerze.

Innym problemem, jeśli używasz linuksa może być nie ustawienie praw zapisu do serwera do katalogu `obrazki`, możesz zmienić prawa na np 0777 i sprawdź czy zadziała.

Jeśli to nie pomoże to napisz jaki błąd Ci wyskakuje.
Go to the top of the page
+Quote Post
microh
post
Post #4





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 5.11.2006

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


w $_POST['miniaturka'] znajduje się link do obrazka.

Całośc dziala dobrze, obrazki się generują, ale jeśli chce zmienic folder, gdzie są zapisywane poprzez zmiane:

z

  1. <?php
  2. $elo = resizeImage($_POST['miniaturka'],130,97,$kod);
  3. ?>


na:

  1. <?php
  2. $elo = resizeImage($_POST['miniaturka'],130,97,'./obrazki/'.$kod);
  3. ?>


Wywala:

Warning: imagegif(): supplied argument is not a valid Image resource in /home/accounts_m/micro15/public_html/skifa/funkcje.php on line 338

w te linii znajduje się:
  1. <?php
  2. imagegif($new_img,$save_image);
  3. ?>


dry.gif
Pomocy?


--------------------
Kobiety są jak pixele - ładne tylko z daleka!
Kobieta $zmienną jest ;D

Fuck all my project !!!!!
Go to the top of the page
+Quote Post
Berkovits
post
Post #5





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 25.08.2007

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


Sprobuj w miejscu
  1. <?php
  2. obrazki/.$kod
  3. ?>

wstawic reczne wartosc $kod (tymczasowo, na czas debugowania). Byc moze masz np. $kod='/costam'. Wtedy do Twej funkcji bys przekazywal wartosc: 'obrazki//costam'. Jednak samo
  1. <?php
  2. '/costam'
  3. ?>

jest poprawne.
Byc moze tak sie u Ciebie dzieje.
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: 20.08.2025 - 11:41