Php 转换时图像样本为黑色
当我上传一个文件(.jpg)并执行Php 转换时图像样本为黑色,php,image,gd,Php,Image,Gd,当我上传一个文件(.jpg)并执行var\u转储($\u 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
var\u转储($\u 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
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);
}
但是,对于此代码:
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');
一切都很好。所以我的问题是:在转换之前,我需要将图像存储在主机中吗?我想避免这种情况,因为我只需要缩略图
另外:
$\u文件['img']['tmp\u name']
没有解决问题。使用$\u文件['img']['tmp\u name']
您的解决方案使用整个阵列作为参数我需要如下内容:
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
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);
}
在提问之前,我已经测试了你发布的内容,但没有效果。谢谢。您使用什么调整大小类?我想您可能必须先复制图片才能为其提供扩展。就我所阅读的示例而言,该函数查找文件扩展名以确定要执行的操作。这意味着字符串“/tmp/phpfa9gSr”对类不起作用,而且它最终是一个jpg