2013-10-14 2 views
0

다른 형식의 이미지를 내 서버의 폴더에 업로드했습니다. ImageMagick 사용하기 JPG로 변환하고 JPG로 바꾸고 싶습니다. 나는 그것이, 변환 특정 이미지를 지정하면 내가 교체 할 때 나는 다음과 같은 오류가 abc.gif*.*에 말을PHP 배치 이미지를 사용하여 jpg 폴더에있는 모든 이미지를 변환 Magick

<?php 

try 
{ 
     /*** the image file ***/ 
     $image = 'temp_images/*.*'; 

     /*** a new imagick object ***/ 
     $im = new Imagick(); 

     /*** ping the image ***/ 
     $im->pingImage($image); 

     /*** read the image into the object ***/ 
     $im->readImage($image); 

     /**** convert to png ***/ 
     $im->setImageFormat("jpg"); 

     /*** write image to disk ***/ 
     $im->writeImage('temp_images/input/*.jpg'); 

     echo 'Image Converted'; 
} 
catch(Exception $e) 
{ 
     echo $e->getMessage(); 
} 

?> 

:

이 내 코드입니다.

'이미지 temp_images/input/*.*을 열 수 없습니다 : 그런 파일이나 디렉토리 @ 오류가 blob.c에게 /은/2638 OpenBlob /'내가 mogrify 사용할 수있는 읽을 문서에서

하지만 난 몰라 PHP에 comand line을 삽입 할 사람.

+2

폴더의 각 파일을 먼저 가져와야합니다. 당신은 자동으로 그 일을하지 않을 것입니다. – zurfyx

+0

파일이 이미 폴더에 있습니다. –

+0

예, 그렇지만 목록을 가져 와서 'foreach'해야합니다. http://php.net/glob이 도움이 될 것입니다. – ceejayoz

답변

1

와일드 카드와 같이 파일 이름을 지정할 수 없습니다.

당신은 당신의 요구 사항에 일치하는 파일의 목록을 가져 http://php.net/glob 또는 directory functions을 사용할 수 있으며, 다음 foreach 루프를 사용하여 단계별로. 스크립트를 실행 system()을 사용할 수 있습니다, 당신이 정말로 PHP 내에서 작업을 수행하려는 경우,

#!/bin/bash 
shopt -s nullglob nocaseglob # Ignore case and errors 
for i in *.png *.tif *.bmp # Do all images except JPEGs 
do 
    newname=${i%.*}.jpg  # Strip file extension 
    convert "$i" "$newname" # Convert to JPEG 
done 

을 또는 :

0

당신은 정말 당신이 직접 쉘에서 그것을 할 수 있습니다, 그것을 위해 PHP가 필요하지 않습니다 위.

관련 문제