2011-04-06 2 views
0

파일을 이동하는 동안 이미지를 필터링하는 방법에 대한 질문이 있습니다. 나는 uploadify 이미지를 업로드하는 데 사용. 내가 한 일은 이미지를 디렉토리로 옮기기 전에 코드 필터가 이미지를 회색 음영으로 변환하는 것입니다.PHP imagefilter and uploadify

여기에 내 코드

if (!empty($_FILES)) { 
    $tempFile = $_FILES['Filedata']['tmp_name']; 
    $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/'; 
    $targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name']; 

    $newImg = imagefilter($tempFile, IMG_FILTER_GRAYSCALE); // This is what I insert 

    move_uploaded_file($newImg,$targetFile); 
    echo "1"; 
} 

코드는 uploadify.php 내가 그냥 그레이 스케일 만들기 위해 필터를 삽입합니다. 도와주세요. 미리 감사드립니다.

+0

귀하의 질문은 무엇입니까? –

+0

이미지를 그 디렉토리로 이동하기 전에 어떻게 그레이 스케일로 만들 수 있습니까? – Jorge

+0

'imagecreatefrom *()'함수를 사용하여 먼저 초기화해야하는 이미지 리소스에서'imagefilter()'가 작동합니다. 예제는 [imagefilter에 대한 매뉴얼] (http://www.php.net/imagefilter)를 참고하십시오. –

답변

0

Imagefilter는 파일이 아닌 이미지 리소스와 새로운 이미지가 아닌 부울에서 작동합니다. 그것은 the documentation을 통해 독서 아마 가치가 있지만, 먼저 이미지를로드 당신이 imagefilter을 사용하려면이 라인

if (!empty($_FILES)) { 
    $tempFile = $_FILES['Filedata']['tmp_name']; 
    $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/'; 
    $targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name']; 

    // Create an image resource - exact method will depend on the image type (PNG, JPEG, etc) 
    $im = imagecreatefrompng($tempFile); 

    // Apply your filter 
    imagefilter($im, IMG_FILTER_GRAYSCALE); 

    // Save your changes 
    imagepng($im, $tempFile); 

    move_uploaded_file($tempFile,$targetFile); 
    echo "1"; 
} 
0

함께 뭔가 코드를 변경해야합니다. GD로드 기능 (예 : imagecreatefrompng) 중 하나를 사용하십시오. 그러면 로드 이미지에 필터를 사용할 수 있습니다. 덧붙여서 imagefilter에 대한 매개 변수를 확인하십시오 (로드 된 이미지가 필요하며 이미지 경로가 아닙니다).

// Check extension of the file, here is example if the file is png, but you have to check for extension and use specified function 
$img = imagecreatefrompng($tempFile); 

if(imagefilter($img, IMG_FILTER_GRAYSCALE)) 
{ 
    // success 
} 
else 
{ 
    // failture 
} 

// Save file as png to $targetFile 
imagepng($img, $targetFile); 

// Destroy useless resource 
imagedestroy($img);