Klasöründen ve bir çıktı klasörüne mağaza bu boyutlandırma sonra görüntü girdisi almak

1 Cevap php

Ben bir klasörden girdi olarak görüntülerin sırasını almak gerekir ve yeniden boyutlandırma sonra, resized görüntü bir çıkış klasörde saklanmalıdır. Ben kod yazdı. Ama resim boyutlandırma sonra benim kod, çıkış klasör sadece siyah bir görüntü var.

Bu kod hata ayıklamak için giriş oluşturmak ve lütfen çıktı klasör ve giriş klasörde bazı gif resim koymak ve çıkış klasöre çıktı bakın. Lütfen yardım edin.

<?php
$dir = opendir("input/");
$i   = 0;
while ($imgfile = readdir($dir))
  {
    if ($imgfile != "." && $imgfile != "..")
      {
        $imgarray[$i] = $imgfile;
        $newwidth     = 240; //new width
        $newheight    = 320; //new height
        $uploadedfile = $imgarray[$i];
        $src          = imagecreatefromgif($uploadedfile);
        list($width, $height) = getimagesize($uploadedfile);
        $tmp = imagecreatetruecolor($newwidth, $newheight);
        imagecopyresampled($tmp, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
        $filename = "output/" . $imgarray[$i];
        imagegif($tmp, $filename, 100);
        imagedestroy($src);
        imagedestroy($tmp);
        $i++;
      }
  }
closedir($dir);
?>

1 Cevap

Sizin hata bu satırda:

$uploadedfile = $imgarray[$i];

Sizin görüntüleri giriş klasöründe, ama bu sadece görüntü ismi değişken belirliyor, böylece imagecreatefromgif çağıran ve getimagesize bir görüntü bulmak değil, sonuçlanan çalıştığınızda Eğer alıyorsanız siyah çıkış. , Düzeltmek hemen adından önce doğru dizin eklemek için:

$uploadedfile = "input/" . $imgarray[$i];

Bu değişiklik ile test edilmiş ve çalışır.

: Bir yan not olarak, ben quickly üzerine error_reporting alarak koduyla yanlış olduğunu bulmak mümkün oldu

error_reporting(E_ALL);
ini_set('display_errors', 1);

Bunu yaparak, size başka türlü görmüyor olabilir mesajları ve uyarı alırsınız. Bu hızlı bir düzeltme ve saat için saç yırtılma arasındaki fark olabilir. Eğer hata ayıklama olduğunda kullanın.