login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > GD library > Tumbnail Script

Tumbnail Script

Auteur: Stijn1 - 29 november 2004 - 20:22 - Gekeurd door: Dennisvb - Hits: 6154 - Aantal punten: 3.00 (2 stemmen)



Dit is een klein scriptje, waarmee je een dir kan laten uitlezen en dat hij automatisch al de images Tumbnailed naar de juiste grootte (de grootte door jouw gekozen)
Vb om de class te gebruiken:
  1. <?php
  2. $dir = new tumb_dir('path/naar/de/dir', 'voorvoegsel_', array('toegelate', 'extenties'), 'Maximale grootte van de lanste zijde', 'recursief of niet (submappen zoeken) in true of false');
  3. // dus hier vb met ingevulde waardes:
  4. $dir = new tumb_dir('/home/scripts4/public_html/stijn/', 'tumb_', array('jpg', 'gif', 'png'), '100', true);
  5. ?>
Als je een foto hebt, met de hoogte bijvoorbeeld 1000 en de breedte 500, als je dan maximale hoogte 100 zet krijg je de hoogte: 100 en de breedte 50
Hij blijft dus in dezelfde verhouding... (vanonder heb ik een vb dat je de dir kan ingeven...)

Code:
  1. <?PHP
  2. class tumb_dir{
  3. var $geg = array();
  4. function tumb_dir($path, $add = 'tumb_', $extentions = array('jpg', 'gif', 'png'), $size = 100, $recursive = true){
  5. $ret = '';
  6. if(is_dir($path) && !empty($add) && preg_match('#^\/(.*)\/$#is', $path) && is_array($extentions) && is_numeric($size) && is_bool($recursive)){
  7. $this->geg['path'] = $path;
  8. $this->geg['max_size'] = $size;
  9. $this->geg['recursive'] = $recursive;
  10. $this->geg['add'] = $add;
  11. foreach($extentions as $value){
  12. $this->geg['extentions'][] = strtolower($value);
  13. }
  14. foreach(tumb_dir::__dir_array() as $value){
  15. if(!preg_match('#'.$this->geg['add'].'#i', $value)){
  16. list($width, $height) = getimagesize($value);
  17. $width_old = $width;
  18. $height_old = $height;
  19. if($width > $this->geg['max_size'] || $height > $this->geg['max_size']){
  20. if($width == $height){
  21. $width = $this->geg['max_size'];
  22. $height = $this->geg['max_size'];
  23. }
  24. elseif($width > $height){
  25. $height = ($height/($width/$this->geg['max_size']));
  26. $width = $this->geg['max_size'];
  27. }
  28. else{
  29. $width = ($width/($height/$this->geg['max_size']));
  30. $height = $this->geg['max_size'];
  31. }
  32. }
  33. $new_path = explode('/', $value);
  34. $new_path[(count($new_path)-1)] = $this->geg['add'].$new_path[(count($new_path)-1)];
  35. reset($new_path);
  36. $new_path = implode('/', $new_path);
  37. $img_new = imagecreatetruecolor($width, $height);
  38. $img_old = imagecreatefromjpeg($value);
  39. imagecopyresampled($img_new, $img_old, 0, 0, 0, 0, $width, $height, $width_old, $height_old);
  40. imagejpeg($img_new, $new_path, 100);
  41. imagedestroy($img_new);
  42. imagedestroy($img_old);
  43. $ret .= $new_path.' is succesvol aangemaakt!<br />';
  44. }
  45. }
  46. }
  47. else{
  48. $ret .= 'De dir ('.$path.') is niet gevonden, kijk of de dir bestaat en dat je een begin en eind \'/\' hebt ingegeven.';
  49. }
  50. echo $ret;
  51. }
  52. function __dir_array($path = ''){
  53. if($path == ''){
  54. $path = $this->geg['path'];
  55. }
  56. else{
  57. $path .= '/';
  58. }
  59. $dir = array();
  60. $dir['array'] = array();
  61. if(is_dir($path) && $dir['open'] = opendir($path)){
  62. while(($dir['read'] = readdir($dir['open'])) !== false){
  63. if($dir['read'] != '.' && $dir['read'] != '..'){
  64. $dir['extention'] = explode('.', $dir['read']);
  65. $dir['extention'] = end($dir['extention']);
  66. if(is_dir($path.$dir['read']) && $this->geg['recursive'] == true){
  67. $dir['array'] = array_merge($dir['array'], tumb_dir::__dir_array($path.$dir['read']));
  68. }
  69. elseif(in_array(strtolower($dir['extention']), $this->geg['extentions'])){
  70. $dir['array'][] = $path.$dir['read'];
  71. }
  72. }
  73. }
  74. closedir($dir['open']);
  75. return $dir['array'];
  76. }
  77. else{
  78. return array();
  79. }
  80. }
  81. }
  82. ?>
  83. <form method="POST">
  84. <input type="text" name="dir" size="70" value="<?PHP echo ((isset($_POST['dir'])) ? $_POST['dir'] : $_SERVER['DOCUMENT_ROOT'].'/'); ?>"> (met begin en eind '/')<br />
  85. <input type="submit" name="tmbn" value="Tumbnailen">
  86. </form>
  87. <hr />
  88. <?PHP
  89. if(isset($_POST['tmbn'])){
  90. if(!empty($_POST['dir'])){
  91. $dir = new tumb_dir($_POST['dir']);
  92. }
  93. else{
  94. echo 'Je moet een dir ingeven!';
  95. }
  96. }
  97. ?>
Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (12)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.056s