将图像调整到另一个目录

时间:2012-11-11 00:47:13

标签: php image image-resizing

我对/images/500x500/中的所有图片都有以下内容。我需要将图片大小调整为250x250,然后使用相同的文件名进入/images/250x250/

它不会在新目录中创建新映像,而是替换同一目录中的large?

<?php

$files = glob("*.{png,jpg,jpeg}", GLOB_BRACE);

foreach ($files as $file) 
{
  // get the image size
  $imagesize = getimagesize($file);
  $width_orig = $imagesize[0];
  $height_orig = $imagesize[1];

  $dst_w = 250;

  if($width_orig != $dst_w)
  {

    $dst_h_multiplier = $dst_w / $width_orig;
    $dst_h = $dst_h_multiplier * $height_orig;

    $dst = imagecreatetruecolor($dst_w, $dst_h);
    $image = imagecreatefromjpeg($file);
    imagecopyresampled($dst, $image, 0, 0, 0, 0, $dst_w, $dst_h ,$width_orig, $height_orig);

    imagejpeg($dst, $outputFile, 100);

$outputFile = 
    realpath(
        pathinfo($file, PATHINFO_DIRNAME) 
        . '/../250x250/'
    ) . pathinfo($file, PATHINFO_BASENAME);

  }
}

?>

1 个答案:

答案 0 :(得分:0)

$outputFile = 
    realpath(
        pathinfo($file, PATHINFO_DIRNAME) 
        . '/../'
    ) . pathinfo($file, PATHINFO_BASENAME);

首先,您需要使用realpath()获得的路径以及pathinfo()。然后,只需附加一个..和文件名。

此外,您可能不需要realpath()。我没有测试过。