我在codeigniter中创建了一个项目,用户可以在其中上传他的个人资料图片。我正在使用图片库上传它。当我在IOS设备上使用相机上传图像时,图像上传了一些灰色区域。库中的代码是
function createImage($iMageName,$folderName){
$width = 500; $height = true;
$data=base64_decode($iMageName);
$f = finfo_open();
$mime_type = finfo_buffer($f, $data, FILEINFO_MIME_TYPE);
$image = imagecreatefromstring($data);
$height = $height === true ? (ImageSY($image) * $width / ImageSX($image)) : $height;
$output = ImageCreateTrueColor($width, $height);
$imgThumb=uniqid().strtotime(date("Y-m-d H:i:s")).'.jpg';
$imageName=$folderName.$imgThumb;
$fullpath=FCPATH.$imageName;
ImageCopyResampled($output, $image, 0, 0, 0, 0, $width, $height, ImageSX($image), ImageSY($image));
imagejpeg($output, $fullpath, 90);
return $imageName;
}
答案 0 :(得分:0)
我也面临同样的问题。 在以下情况下会出现问题:
文件大小。请验证文件大小。
请写下以下代码并检查它是否有效。
function createImage($iMageName,$folderName){
ini_set ('gd.jpeg_ignore_warning', 1);
$width = 500; $height = true;
$data=base64_decode($iMageName);
$f = finfo_open();
$mime_type = finfo_buffer($f, $data, FILEINFO_MIME_TYPE);
$image = @imagecreatefromstring($data);
$height = $height === true ? (ImageSY($image) * $width /
ImageSX($image)) : $height;
$output = @ImageCreateTrueColor($width, $height);
$imgThumb=uniqid().strtotime(date("Y-m-d H:i:s")).'.jpg';
$imageName=$folderName.$imgThumb;
$fullpath=FCPATH.$imageName;
@ImageCopyResampled($output, $image, 0, 0, 0, 0, $width,
$height, ImageSX($image), ImageSY($image));
imagejpeg($output, $fullpath, 90);
return $imageName;
}
谢谢,这对你有帮助