1

私は完全な高品質の画像と、特定の画像をウェブサイトに直接掲載しています。PHP を使用して、このディレクトリから「thumbs」という別のディレクトリにサムネイルを生成したいと思います。

特定の画像のサムネイルを作成するコードを見つけることができましたが、フォルダー全体に対して実行しようとすると機能しませんでした。

次に、ここから別のコードを見つけました。これは、探しているものと思われます (最初の部分のみ)。残念ながら、ソースと宛先をコードのどこに挿入すればよいかわかりません。

    /* function:  generates thumbnail */
function make_thumb($src,$dest,$desired_width) {
  /* read the source image */
  $source_image = imagecreatefromjpeg($src);
  $width = imagesx($source_image);
  $height = imagesy($source_image);
  /* find the "desired height" of this thumbnail, relative to the desired width  */
  $desired_height = floor($height*($desired_width/$width));
  /* create a new, "virtual" image */
  $virtual_image = imagecreatetruecolor($desired_width,$desired_height);
  /* copy source image at a resized size */
  imagecopyresized($virtual_image,$source_image,0,0,0,0,$desired_width,$desired_height,$width,$height);
  /* create the physical thumbnail image to its destination */
  imagejpeg($virtual_image,$dest);
}

/* function:  returns files from dir */
function get_files($images_dir,$exts = array('jpg')) {
  $files = array();
  if($handle = opendir($images_dir)) {
    while(false !== ($file = readdir($handle))) {
      $extension = strtolower(get_file_extension($file));
      if($extension && in_array($extension,$exts)) {
        $files[] = $file;
      }
    }
    closedir($handle);
  }
  return $files;
}

/* function:  returns a file's extension */
function get_file_extension($file_name) {
  return substr(strrchr($file_name,'.'),1);
}

フォルダのソースと宛先をどこに入力すればよいですか?

4

1 に答える 1

1

入力ディレクトリ$images_dirget_files.

このメソッドの結果をループして、その特定のファイルの最終的な名前になるmake_thumb場所を呼び出す必要があります。$dest

このようなもの(これはテストしていません):

//Set up variables we need
$image_directory = "/some/directory/with/images/";
$thumbs_directory = "/some/directory/for/thumbs/";
$desired_width = 100;

//Get the name of files in $image_directory
foreach(get_files($image_directory) as $image){
    //Call make thumb with the given image location and put it into the thumbs directory.
    make_thumb($image_directory . $image, $thumbs_directory . $image, $desired_width)
}
于 2013-03-04T03:54:04.787 に答える