나는 사용자 프로필 이미지를 잘라 작은 사용자 정의 드루팔 모듈을 가지고있다. http://5oup.net/sites/default/files/profile_pictures/405/t_Photo_8.jpgPHP 이미지 자르기 오류
및 원본 파일 : 잘못 갈 수있는 어떤 http://5oup.net/sites/default/files/profile_pictures/405/Photo_8.jpg
어떤 생각이 여기에
는 문제의 예입니다? 내 추측은 imagecreatetruecolor() 라인 주변에있는 것입니까? 사전에감사
제임스
편집
나는 지금이에서 발생했습니다 정말로 확실 해요 있도록 orginal 한 사용자 이미지로 오류를 재현 할 수없는 것 케이스! 이 지금 또한 오류의 원인이 될 수 실현 사전 작물 이미지 업로드 기능은, 그래서 전체 공개의 이익 :
if(isset($_POST['form_sent']))
{
$imageFile = $_FILES['image']['tmp_name'];
$filename = basename($_FILES['image']['name']);
$filename = preg_replace("/[^A-Za-z0-9 .]/", '', $filename);
$filename = str_replace(" ", '_', $filename);
$filename = urlencode($filename);
$img_info = getimagesize($imageFile);
if (filesize($imageFile) > 510000) {
drupal_set_message('Image too large. Please upload a file 500kb or less.', 'error');
$image_form = '<a href="/avatar">Choose a different image</a>';
$output = array(
'image_form' => $image_form
);
return serialize($output);
}
list($width, $height) = getimagesize($imageFile);
switch ($img_info['mime']) {
case 'image/png':
$src = imagecreatefrompng($imageFile);
break;
case 'image/jpeg':
case 'image/jpg':
$src = imagecreatefromjpeg($imageFile);
break;
case 'image/gif':
$src = imagecreatefromgif($imageFile);
break;
default:
drupal_set_message('File type not allowed. Please upload a jpg, gif or png.', 'error');
$image_form = '<a href="/avatar">Jpg, gif or pngs only</a>';
$output = array(
'image_form' => $image_form
);
return serialize($output);
break;
}
$orig_h = ($height/$width)* $orig_w;
$tmp = imagecreatetruecolor($orig_w, $orig_h);
imagecopyresampled($tmp, $src, 0,0,0,0,$orig_w,$orig_h,$width,$height);
imagejpeg($tmp, $folder.$filename, 100);
imagedestroy($tmp);
imagedestroy($src);
}
코드 앞에 'ini_set ('gd.jpeg_ignore_warning ', 1);을 추가하면 어떻게됩니까? –
나는 그것을 제공했다, 흥미롭게도 나는 제공된 이미지로 오류를 재현 할 수 없다 (편집 된 질문 참조). –
imagecache 모듈은 어떻습니까? 바퀴를 재발 명할 필요가 없습니다 .. – tpow