Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Zapisywanie obrazka na serwerze
Forum PHP.pl > Forum > PHP
sebekzosw
Witam! Mam taki skrypt, który tworzy mi obrazek:

  1. <?php
  2. ini_set('memory_limit', '160M');
  3.  
  4.    function wysokosc($plik) {
  5.        $max_width = 500;
  6.        $max_height = 400;
  7.  
  8.        $img_size = GetImageSize($plik);
  9.        $img_width = $img_size[0];
  10.        $img_height = $img_size[1];
  11.  
  12.        $ratio_x = $max_width/$img_width;
  13.        $ratio_y = $max_height/$img_height;
  14.  
  15.        if($img_width < $max_width && $img_height < $max_height){
  16.            $new_width = $img_width;
  17.             $new_height = $img_height;
  18.        } else {
  19.            $new_width = $max_width;
  20.               $new_height = ceil($img_height * $ratio_x);
  21.        }
  22.  
  23.        return $new_height;
  24.    }
  25.  
  26.  
  27.    $rozmiar_czcionki = 10;
  28.  
  29.    Header('Content-type: image/jpeg');
  30.  
  31.    $data = date("d")."-".date("m")."-".date("Y").";".date("H").".".date("i").".".date("s");
  32.  
  33.    //header('Content-Disposition: attachment; filename="'.$_POST["text"].'_'.$data.'.jpg"');
  34.  
  35.    $obrazekk1 = $_POST["obrazek1"];
  36.    $obrazekk2 = $_POST["obrazek2"];
  37.  
  38.    $image1 = imagecreatefromjpeg($obrazekk1);
  39.    $image2 = imagecreatefromjpeg($obrazekk2);
  40.  
  41.    list($width, $height) = getimagesize($obrazekk1);
  42.     list($width2, $height2) = getimagesize($obrazekk2);
  43.  
  44.    $new_width=500;
  45.    $new_height = wysokosc($obrazekk1);
  46.    $new_height2 = wysokosc($obrazekk2);
  47.  
  48.  
  49.    $nowy = imagecreatetruecolor($new_width, ($new_height+$new_height2+50));
  50.  
  51.    //obrazek 1
  52.    $image_p1 = imagecreatetruecolor($new_width, $new_height);
  53.    ImageCopyResampled($image_p1, $image1, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
  54.  
  55.    //obrazek 2
  56.    $image_p2 = imagecreatetruecolor($new_width, $new_height2);
  57.    ImageCopyResampled($image_p2, $image2, 0, 0, 0, 0, $new_width, $new_height2, $width2, $height2);
  58.  
  59.  
  60.     //obrazek 3
  61.    $im = @imagecreatetruecolor($new_width, 50);
  62.    $white = imagecolorallocatealpha($im, 255, 255, 255, 0);
  63.    $grey = imagecolorallocatealpha($im, 128, 128, 128, 0);
  64.    $black = imagecolorallocatealpha($im, 0, 0, 0, 0);
  65.    imagefilledrectangle($im, 0, 0, 500, 50, $black);
  66.  
  67.    $text = $_POST["text"];
  68.    $font = '../FW/css/tahomabd.ttf';
  69.  
  70.     $box = imagettfbbox($rozmiar_czcionki, 0, $font, $text);
  71.    $x = (int)abs(($box[2] - $box[0]));
  72.    $y = (int)abs(($box[1] - $box[7]));
  73.  
  74.    $sx=((500/2)-($x/2));
  75.    $sy=((50/2)+($y/2))-5;
  76.  
  77.  
  78.     imagettftext($im, $rozmiar_czcionki, 0, $sx, $sy, $white, $font, $text);
  79.  
  80.    //generowanie obrazka
  81.    imagecopyresized($nowy, $image1, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
  82.    imagecopyresized($nowy, $im, 0, $new_height, 0, 0, $new_width, 50, 500, 50);
  83.    imagecopyresized($nowy, $image2, 0, ($new_height+50), 0, 0, $new_width, $new_height2, $width2, $height2);
  84.    //imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
  85.  
  86.    ImageJpeg($nowy, '', 80);
  87.    imagedestroy($nowy);
  88.    imagedestroy($img);
  89. ?>


Jak zrobić, aby skrypt zapisał mi go w katalogu "zrobione_obrazki" pod nazwą "title_time()"?? nie potrafię do tego dojść :| questionmark.gif

Próbowałem z copy" title="Zobacz w manualu PHP" target="_manual ale nie wychodziło :|

Z góry dzięki za pomoc smile.gif
wookieb
Dobrze, że napisałeś "mam" a nie "zrobiłem" bo bysmy nie uwierzyli, choć co prawda użycie tego pierwszego słowa nie usprawiedliwia przed nie czytaniem manuala smile.gif
http://pl2.php.net/ImageJpeg i drugi argument.
blinki
wcisnij gdzies to(nie wiem gdzie bo niechce mi sie linijka po linijce leciec:

Kod
$uploaddir = './galeria';
$data=date("dmYGhis");

move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir."/".$data.".jpg");



a i jesli chodzi o to zeby cie sie pokoleji wyswietlaly zdjecie lepiej jeszcze zrobic wpis do bazy danych

Kod
$ip=$_SERVER['REMOTE_ADDR'];
mysql_query("INSERT INTO galeria (`id`, `link`, `ip`) VALUES ('','./galeria/$data', '$ip')");


wyswietlanie proste:

Kod
mysql_query("SELECT * FROM galeria ORDER BY id DESC");
sebekzosw
Wielkie dzięki wookieb!

A tak na marginesie ;] w połowie sam napisałem ten skrypt ;p smile.gif
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.