2008-10-06 7 views
0

이미지 형식 (PNG, JPEG, GIF)을 가져 와서 크기를 조정 한 다음 경로에 저장해야하는 이미지 업로드 양식이 있습니다.PHP로 만든 PNG (gif 및 jpg와 다른가요?)

어떤 이유로 PNG 파일 형식을 사용할 수 없으며 JPEG/GIF와 잘 작동하며 파일이 복사되므로 PNG를 만드는 방법과 관련이있는 것처럼 보입니다.

PHP에서 PNG 생성시 다른 매개 변수 또는 옵션이 필요합니까? 이미지 생성을 수행하는 일부 샘플 코드 코드 :

$src = imagecreatefrompng($uploadedfile); 
imagecreatetruecolor($newWidth,$newHeight) 
imagecopyresampled($tmp,$src,0,0,0,0,$newWidth,$newHeight,$width,$height); 
imagepng($tmp,$destinationPath."/".$destinationFile,100); 

동일한 명령이 JPG 및 GIF에서 작동합니다.

답변

2

당신은 .. 당신의 PHP 내장하는 방법을 찾기 위해 예 : 필요

GD Support enabled 
GD Version bundled (2.0.28 compatible) 
PNG Support  enabled 

당신은 PNG 지원이 컴파일되어 있지 않은 경우, 당신이 업데이트되어 있어야합니다.

+0

체크 나는 PNG 지원이 => 부울 진정한 => 부울 진정한 'JPG 지원', 'GIF 지원 만들기'=> 부울 사실에 대한 => 부울 사실 덕분에 '지원을 PNG' 'GIF 읽기 지원' 그 대답은 ... 그게 될 것이라고 생각 했어요 –

0

PNG-8 이미지로 시작 하시겠습니까? PHP로 작업 할 때 PNG-8 대 PNG-24에 몇 가지 문제가 있습니다. PNG 지원이 컴파일되어 있는지 확인한 다음 look at this persons solution to the PNG-8 problem을 가져 가십시오.

+0

나는 8 비트와 24 비트를 모두 시도해 보았지만 차이는 없습니다. imagepng()에 문제가있는 것 같습니다. PNG에서 imagejpeg()을 사용하면 실제로 작동합니다 ... –

0

체크 내가 PNG 지원이 있습니다

'GIF 읽기 지원'=> 부울 사실 'GIF 지원 만들기'=> 부울 사실 'JPG 지원'=> 부울 사실 'PNG 지원'=> P :하지만 응답에 대한 사실

감사 부울 ... 그게

1

내가 문제, 내가 API를 읽고 있지 단지 문제를 알아 낸 것이다라고 생각했다.

imagejpg() 또는 imagegif()과 달리 imagepng()은 압축시 0-9의 정수를 허용합니다. 그래서 저는 100을 매개 변수로 전달하여 품질이 더 높을 것이라고 생각했지만 대신 최대 압축으로 간주했습니다. 0을 전달하면 문제가 해결되었습니다.

어쩌면 API가 PHP 버전에서 변경 되었습니까?