图像样本在转换时为黑色

时间:2012-10-23 12:00:04

标签: php image gd

当我上传文件(.jpg)并执行var_dump($_FILES['img'])时,我会得到以下内容:

array
  'name' => string 'help_clip_image020.jpg' (length=22)
  'type' => string 'image/jpeg' (length=10)
  'tmp_name' => string '/tmp/phpfa9gSr' (length=14)
  'error' => int 0
  'size' => int 35504

但是使用此代码:

include("resize-class.php");

// *** 1) Initialise / load image
$resizeObj = new resize($_FILES['img']);

// *** 2) Resize image (options: exact, portrait, landscape, auto, crop)
$resizeObj -> resizeImage(200, 200, 'crop');

// *** 3) Save image
$resizeObj -> saveImage('sample-resized.jpg', 100);

我会得到一张黑色的图片。但是有一条绝对的道路:

$resizeObj = new resize('http://leandrovieira.com/projects/jquery/lightbox/photos/image1.jpg');
一切顺利。所以我的问题是:我需要在转换之前将图像存储在主机中吗?我想避免这种情况,因为我只需要缩略图。

另外:$_FILES['img']['tmp_name']没有解决问题。

2 个答案:

答案 0 :(得分:1)

使用$ _FILES ['img'] ['tmp_name'];

您的解决方案使用整个数组作为参数

答案 1 :(得分:0)

我需要这样的东西:

 if(move_uploaded_file($img['tmp_name'], $path.$yourImgName_extension)){
            $resizeObj = new resize($path.$yourImgName_extension);

            $resizeObj -> resizeImage(200, 200, 'crop');

            $resizeObj -> saveImage($path.'sample-resized.jpg', 100);
        }