만들고있는 응용 프로그램에 이미지를 업로드하려고합니다. .png 이미지는 파일 시스템에서 약 190KB를 차지하며 해상도는 2000px 및 1667px입니다. 32MB의 PHP 메모리 제한을 설정했습니다. 나는 내가 많은 사람들이 내 응용 프로그램이 어떤 작업을 수행하여 생각이 .PNG 이미지를 업로드 할 때 나는 것을 이해 는, 나는PNG 업로드 오류 - 할당 된 메모리 크기 오류
Allowed memory size of 33554432 bytes exhausted (tried to allocate 13336000 bytes)
지금은에 이러한 계산 때 MB를 다음과 같은 오류가 말 받고 있어요 그것은
Allowed memory size of 32MB exhausted (tried to allocate 12.71MB)
을 읽을 그래서 파일 시스템에 190킬로바이트의 크기가 너무 많은 메모리 공간을 차지 결국 보여줍니다 파일을 어떻게 와서 이해하지 못하는거야?을 그것은 .png 파일이 내가 모르는 메모리에서 어떻게 다루어 지는지에 관한 것입니까?
여기에서 코드 imagecreatefrompng
private function optimise_image($source_path, $destination_path){
list($source_image_width, $source_image_height, $source_image_type) = getimagesize($source_path);
//Using this source path, we'll create a memory instance of the image for processing
$source_image_ratio = $source_image_width/$source_image_height;
switch ($source_image_type) {
case IMAGETYPE_GIF:
$source_gd_image = imagecreatefromgif($source_path);
break;
case IMAGETYPE_JPEG:
$source_gd_image = imagecreatefromjpeg($source_path);
break;
case IMAGETYPE_PNG:
$source_gd_image = imagecreatefrompng($source_path);
break;
}
오류가 발생하는()가된다. 해상도를 줄이기 위해 여기에 이미지를로드하고보기에 스토리지 및 대역폭을 최적화하기 위해 품질을 설정합니다.
조금 더 조사하자마자 파일이 업로드되고 서버의 파일 크기가 190KB가되었습니다. 따라서보고있는 코드는 처리를 위해 파일을 다시 가져 오려는 곳입니다. 이 전에는 파일이 메모리에 한 번로드 된 다음 파괴되지 않고 남아있는 프로세스의 위치가 없습니다 (어떤 상황이 발생했는지 생각했습니다).
더 많은 정보가 필요하면 다음을 수행하십시오. 나에게 물어 보라. 나는 그에 따라 대답하려고 노력할 것이다. 픽셀 당
더 나은 아이디어를 얻으려면 몇 가지 코드를 게시하십시오. – Rikesh
ini_set ('memory_limit', '200M')을 사용하여 메모리 크기를 설정하십시오. – Sundar
@Sundar 왜 190Kb 이미지에 200M이 필요합니까? – tlenss