2012-01-27 2 views
0

안녕 얘들 아 두 장의 사진을 병합하는 데 문제가 있습니다 ... 사용자 업로드 한 사진과 함께 png 파일 (배지)을 병합하려고합니다. 사용자가 png oder gif 파일을 업로드 할 때 모든 것이 잘 작동하지만 jpeg 이미지를 업로드하면 출력 이미지가 정말로 이상하게 보입니다. 색상 문제 인 것 같습니다. 여기 imagecopyresized color jpeg가 작동하지 않습니다.

And this happen with an jpeg image

This is an successfully badged image

내 코드 : 내가 직접 파일을

$imgsrc = @ImageCreateFromJPEG($image); 
if (!$imgsrc) $imgsrc = @ImageCreateFromPNG($image); 
if (!$imgsrc) $imgsrc = @ImageCreateFromGIF($image); 
if (!$imgsrc) $imgsrc = @ImageCreateFromWBMP($image); 

를 열거 나하여 파일 형식을 확인하려고 할

//Calculate position for badge (right bottom corner) 
    $badgeRightPosition = $imageWidth - $badgeWidth; 
    $badgeLeftPosition = $imageHeight - $badgeHeight; 

    $image = imagecreatefromstring(file_get_contents($image)); 
    $badge = imagecreatefromstring(file_get_contents($badge)); 

    $trueColorImage = imagecreatetruecolor($imageWidth, $imageHeight); 
    imagealphablending($trueColorImage, true); 
    imagesavealpha($trueColorImage, true); 

    imagealphablending($badge, true); 
    imagesavealpha($badge, true); 

    imagealphablending($image, true); 
    imagesavealpha($image, true); 

imagecopyresized($trueColorImage, $image, 0, 0, 0, 0, $imageWidth, $imageHeight, $imageWidth, $imageHeight); 
imagecopyresized($trueColorImage, $badge, $badgeRightPosition, $badgeLeftPosition, 0, 0, $imageWidth, $imageHeight, $badgeWidth, $badgeHeight); 
+0

그리고 어떻게 하시겠습니까? 몇 가지 코드를 제공하면 답을 얻을 수 있습니다. – Nick

+0

업로드 된 사진이 허용 된 최대 크기보다 큰 경우에도 말해야합니다. 너비이면 이미지 크기가 조정됩니다. 정확하게 여기에 문제가 있습니다 ... 이미지의 크기를 조정 한 후 이미지가 손상된 경우 –

+0

imagecopyresized() 대신 imagecopyresampled()를 사용하면 도움이됩니까? – JochenJung

답변

0

대신 imagecreatefromstring(file_get_contents($image));의 끝내고 사용하기 파일 끝으로 위의 함수 중 하나.

+0

이 작동하지 않습니다. –

관련 문제