Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Galeria] Lepsza jakosc zdjec w galeerii
Forum PHP.pl > Forum > Gotowe rozwiązania
suchy1
Witam,

może ktoś pomoc w przerobieniu tej tabeli na DIV ? probowałem ale nie wyświetla sie poprawnie.
Plik: nailcut.php3
  1. <?php
  2. function thumb_getsize($thumb_width,$thumb_height,$original_width,$original_height,$border=0) {
  3.  $min_width = $thumb_width - $border - $border;
  4.  $min_height = $thumb_height - $border - $border;
  5.  $div_width = $original_width / $min_width;
  6.  $div_height = $original_height / $min_height;
  7.  if ($div_width >= $div_height) {
  8.    $res_width = $min_width;
  9.        $res_height = round($original_height / $div_width);
  10.        $res_left = $border;
  11.        $res_top = round(($min_height / 2) - ($res_height / 2) + $border);
  12.  } else {
  13.    $res_height = $min_height;
  14.        $res_width = round($original_width / $div_height);
  15.        $res_top = $border;
  16.        $res_left = round(($min_width / 2) - ($res_width / 2) + $border);
  17.  }
  18.  $result = array($res_left,$res_top,$res_width,$res_height);
  19.  return $result;
  20. }
  21. function thumb_create($original_img,$img_border,$rect,$original_width,$original_height,$border_width,$border_height) {
  22.  $thumbnail = imagecreate($border_width,$border_height);
  23.  imagecopyresized($thumbnail,$img_border,0,0,0,0,$border_width,$border_height,$border_width,$border_height);
  24.  imagecopyresized($thumbnail,$original_img,$rect[0],$rect[1],0,0,$rect[2],$rect[3],$original_width,$original_height);
  25.  return $thumbnail;
  26. }
  27. function thumb_print($dir,$file_thumb,$file_border,$s,$f,$mdir) {
  28.  
  29.  if ($f or (!(file_exists($mdir.$file_thumb)))) {
  30.    list($width,$height,$pictype) = getimagesize($dir.$file_thumb);
  31.        switch ($pictype) {
  32.          case 1 : $img = imagecreatefromgif($dir.$file_thumb); break;
  33.          case 2 : $img = imagecreatefromjpeg($dir.$file_thumb); break;
  34.          case 3 : $img = imagecreatefrompng($dir.$file_thumb); break;
  35.        }
  36.    list($b_width,$b_height,$b_pictype) = getimagesize($file_border);
  37.        switch ($b_pictype) {
  38.          case 1 : $imgborder = imagecreatefromgif($file_border); break;
  39.          case 2 : $imgborder = imagecreatefromjpeg($file_border); break;
  40.          case 3 : $imgborder = imagecreatefrompng($file_border); break;
  41.        }
  42.    if (($img) && ($imgborder)) {
  43.      $rect = thumb_getsize($b_width,$b_height,$width,$height,$GLOBALS["thumbsborder"]);
  44.      $thumbnail = thumb_create($img,$imgborder,$rect,$width,$height,$b_width,$b_height);
  45.          if ($s) {
  46.            switch ($pictype) {
  47.              case 1 : imagegif($thumbnail,$mdir.$file_thumb); break;
  48.              case 2 : imagejpeg($thumbnail,$mdir.$file_thumb); break;
  49.              case 3 : imagepng($thumbnail,$mdir.$file_thumb); break;
  50.            }
  51.          }
  52.          switch ($pictype) {
  53.            case 1 : imagegif($thumbnail); break;
  54.            case 2 : imagejpeg($thumbnail); break;
  55.            case 3 : imagepng($thumbnail); break;
  56.          }
  57.        }
  58.  } else {
  59.    list(,,$pictype) = getimagesize($mdir.$file_thumb);
  60.        switch ($pictype) {
  61.          case 1 : $img = imagecreatefromgif($mdir.$file_thumb); break;
  62.          case 2 : $img = imagecreatefromjpeg($mdir.$file_thumb); break;
  63.          case 3 : $img = imagecreatefrompng($mdir.$file_thumb); break;
  64.        }
  65.        switch ($pictype) {
  66.          case 1 : imagegif($img); break;
  67.          case 2 : imagejpeg($img); break;
  68.          case 3 : imagepng($img); break;
  69.        }
  70.  }
  71. }
  72. function read_data($data_dir,$ext) {
  73.  $dir_handle = @opendir($data_dir);
  74.  if ($dir_handle) {
  75.    while ($file = readdir($dir_handle)) {
  76.          if (eregi($ext,$file)) {
  77.        $files[] = $file;
  78.          }
  79.    }
  80.    closedir($dir_handle);
  81.  }
  82.  if (gettype($files) == "array") {
  83.    sort($files);
  84.  } else {
  85.    $files = false;
  86.  }
  87.  return $files;
  88. }
  89. function index_print($dir,$ext,$template,$dia,$cols,$f,$maxperpage,$start) {
  90.  $lines = file($template);
  91.  $line = implode("",$lines);
  92.  $selflink = $GLOBALS["PHP_SELF"];
  93.  $images = read_data($dir,$ext);
  94.  if ($images) {
  95.    list(,,,$sizestr) = getimagesize($dia);
  96.    $table = $GLOBALS["infocaption"]."<br><br><table border=\"0\" cellpadding=\"2\">r\n<tr>";
  97.    $max = count($images)-1;
  98.    $end = $start+$maxperpage-1;
  99.    $counter = 0;
  100.    while (list($key,$image) = each($images)) {
  101.      if (($key >= $start) && ($key <= $end)) {
  102.        $piclink = $PHP_SELF."?cmd=min&pic=".$image;
  103.            if ($f) {$piclink .= "&f=1"; }
  104.        $biglink = $PHP_SELF."?cmd=max&start=".$start."&pic=".$image;
  105.        $table .= "<td><a href=\"$biglink\"><img src=\"$piclink\" border=\"0\" $sizestr></a></td>";
  106.            $counter++;
  107.            if (((($counter) % $cols) == 0) && ($key < $end)) {
  108.          $table .= "</tr><tr>";
  109.            }
  110.          }
  111.    }
  112.    $table .= "</tr></table>";
  113.    if ($start > 0) {
  114.      $prevstart = $start - $maxperpage;
  115.      $table .= "<a href=\"$selflink?start=$prevstart\">".$GLOBALS["prevcaption"]."</a>";
  116.    }
  117.    if ($end < $max) {
  118.      $nextstart = $end+1;
  119.      $table .= "<a href=\"$selflink?start=$nextstart\">".$GLOBALS["nextcaption"]."</a>";
  120.    }
  121.  } else {
  122.    $table = "No files in <b>$dir</b>";
  123.  }
  124.  $line = str_replace("###pictable###",$table,$line);
  125.  return $line;
  126. }
  127. function image_print($pic,$template,$start) {
  128.  $lines = file($template);
  129.  $line = implode("",$lines);
  130.  $selflink = $GLOBALS["PHP_SELF"];
  131.  list(,,,$sizestr) = getimagesize($pic);
  132.  $piclink = "<img src=\"$pic\" border=\"0\" $sizestr><br><br>";
  133.  $piclink .= "<a href=\"$selflink?start=$start\">Zurück</a>";
  134.  $line = str_replace("###pictable###",$piclink,$line);
  135.  return $line;
  136. }
  137. function main($cmd,$dir,$pic,$dia,$template,$cols,$s,$f,$mdir,$maxperpage,$start,$ext=".png") {
  138.  switch ($cmd) {
  139.    case "min" :
  140.          thumb_print($dir,$pic,$dia,$s,$f,$mdir);
  141.          break;
  142.        case "max" :
  143.          echo image_print($dir.$pic,$template,$start);
  144.          break;
  145.        default :
  146.          echo index_print($dir,$ext,$template,$dia,$cols,$f,$maxperpage,$start);
  147.  }
  148. }
  149. main($cmd,$img_dir,$pic,$borderpic,$templatefile,$columns,$save,$f,$thumbs_dir,$maxperpage,$start,$ext_pattern);
  150. ?>


Plik: index.php3

  1. <?php
  2. //directory with original pics
  3. $img_dir = "galeria/";
  4. //directory for thumbnail files
  5. $thumbs_dir = "miniaturki/";
  6. //thumbnail template
  7. $borderpic = "ramka.png";
  8. //spacing between template size and thumbnail size
  9. $thumbsborder = 10;
  10. //thumbnails in one row
  11. $columns = 3;
  12. //thumbnails on one page
  13. $maxperpage = 30;
  14. //htmlcode around
  15. $templatefile = "galeria.html";
  16. //save generated thumbnails? faster!
  17. $save = true;
  18. //regular expression for filemask
  19. // ".+.png$|.+.jpg$" = all .png and .jpg
  20. // ".+.jp[e]{0,1}g$" = all .jpeg and .jpg
  21. // ".+.gif" = all .gif
  22. $ext_pattern = ".+.jp[e]{0,1}g$";
  23. //caption of thumbnail table
  24. $infocaption = "Proszę kliknąć na miniaturke aby zobaczyć zdjęcie w oryginalnym romiarze";
  25. //link to previous page
  26. $prevcaption = "Poprzednie";
  27. //link to next page
  28. $nextcaption = "Następne";
  29.  
  30. include("nailcut.php3");
  31. ?>


edit: wieczorem podam linka
erix
Cytat
probowałem ale nie wyświetla sie poprawnie.

Może pokaż, jak robiłeś?

Najlepiej odpal gdzieś to u siebie na serwerze i zalinkuj.
webdice
Tytuł ma opisywać problem, proszę poprawić. W innym wypadku wątek zostanie zamknięty.
suchy1
Witam,

czy jest możliwośc polepszenia jakości zdjęć (miniaturki) ? Korszytam z galerii nailcut , kod zamieściłem powyżej. Z góry dzięki za pomoc snitch.gif

link: Galeria
wookieb
Modyfikujesz te linie jezeli robisz miniaturke
Kod
case 1 : imagegif($thumbnail,$mdir.$file_thumb); break;
case 2 : imagejpeg($thumbnail,$mdir.$file_thumb); break;
case 3 : imagepng($thumbnail,$mdir.$file_thumb); break;

http://php.net/imagepng
http://php.net/imagejpeg
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.