programing

경고: imagejpeg() [function: imagejpeg]: gd-jpeg: JPEG 라이브러리에서 복구할 수 없는 오류가 보고됩니다.

instargram 2023. 2. 26. 09:01
반응형

경고: imagejpeg() [function: imagejpeg]: gd-jpeg: JPEG 라이브러리에서 복구할 수 없는 오류가 보고됩니다.

루트 폴더에 워드프레스를 설치했습니다.

어제까지는 정상적으로 동작했지만 오늘은 썸네일 이미지를 생성하는 것에 대해 다음 오류가 발생합니다.

Warning: imagejpeg() [function:imagejpeg]: gd-jpeg: JPEG library reports unrecoverable error: in public_html/wp-includes/media.php on line 459

이 경고에 대해 아는 사람 있나요?

도와주세요

다음 코드는 459번 줄에 있습니다.

if ( !imagejpeg( $newimage, $destfilename, apply_filters( 'jpeg_quality', $jpeg_quality, 'image_resize' ) ) )

이미지 작성은 아마 시도했을 겁니다.jpeg그렇지 않다jpeg.

PHP에서 섬네일 스크립트를 테스트할 때도 같은 오류가 발생하였습니다.그리고 내 입력 파일의 헤더는png그 연장은 이었지만.jpg.

그래서 만약 이미지 생성에 오류가 있다면jpeg, 로부터 작성하려고 합니다.png (또는 다른 오류가 발생한 경우)

1) 디스크 공간 확인

시스템에 충분한 디스크 공간이 있어야 합니다.

2) 메모리 한계 확인

php에 메모리 추가 설정:

ini_set("memory_limit","256M");

3) post_max_size 및 upload_max_filesize를 확인합니다.

htaccess 파일에서 추가 설정:

php_value post_max_size 16M
php_value upload_max_filesize 6M

4) 기능 앞에 @를 붙입니다.

@imagejpeg(..............);

Point 1)은 나에게 효과가 있었다.

MIME 타입의 이미지를 올바르게 판별하려면 , 함수를 사용할 필요가 있습니다.확장자가 jpg인 png 이미지가 있으면 이 오류가 발생합니다.

이 오류를 방지하려면 올바른 MIME 유형의 이미지를 가져와야 합니다.

function getImage($path) {
switch(mime_content_type($path)) {
  case 'image/png':
    $img = imagecreatefrompng($path);
    break;
  case 'image/gif':
    $img = imagecreatefromgif($path);
    break;
  case 'image/jpeg':
    $img = imagecreatefromjpeg($path);
    break;
  case 'image/bmp':
    $img = imagecreatefrombmp($path);
    break;
  default:
    $img = null; 
  }
  return $img;
}

같은 에러가 발생.하지만 지금 나는 같은 문제를 해결했다.

답변은 다음과 같습니다.png 업로드 중이고 jpg로 변환됩니다.
jpg로 확인 부탁드립니다.그리고 png를 jpg로 변환해야 다른 기능을 사용할 수 있으니 확인 부탁드립니다.

아래 코드는 GD 라이브러리를 사용하여 영상을 변환하는 데 유용합니다.

//variable declare or parameter use
$originalImage ="1.jpg";
$quality=100; // for jpg good quality
$outputImage;   //for source file save.  


// jpg, png, gif or bmp?
    $exploded = explode('.',$originalImage);
    $ext = $exploded[count($exploded) - 1]; 

    if (preg_match('/jpg|jpeg/i',$ext))
        $imageTmp=imagecreatefromjpeg($originalImage);
    else if (preg_match('/png/i',$ext))
        $imageTmp=imagecreatefrompng($originalImage);
    else if (preg_match('/gif/i',$ext))
        $imageTmp=imagecreatefromgif($originalImage);
    else if (preg_match('/bmp/i',$ext))
        $imageTmp=imagecreatefrombmp($originalImage);
    else
        return 0;

    // quality is a value from 0 (worst) to 100 (best)
    imagejpeg($imageTmp, $outputImage, $quality);
    imagedestroy($imageTmp);

PHP7의 경우imagecreatefromjpeg잘못된 파일을 열려고 하면 치명적인 오류가 발생하기 시작합니다.@신호가 잡히지 않습니다.

대신 다음을 사용하십시오.

$im = imagecreatefromstring(file_get_contents($filename));
if ($im !== false) { ... }

언급URL : https://stackoverflow.com/questions/10611883/warning-imagejpeg-functionimagejpeg-gd-jpeg-jpeg-library-reports-unrecov

반응형