Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP imagedestroy() 함수로 이미지를 삭제하고 메모리를 해제하는 방법

imagedestroy()는 PHP에 내장된 함수로, 이미지를 파괴(삭제)하고 해당 이미지와 연관된 메모리를 모두 해제하는 데 사용됩니다.

문법

bool imagedestroy(resource $image)

매개변수

imagedestroy() 함수는 하나의 매개변수 $image만 받습니다. 이 매개변수는 처리할 이미지의 리소스를 담고 있습니다.

반환 값

imagedestroy() 함수는 성공 시 true를 반환하고, 실패 시 false를 반환합니다.

예제 1 − 이미지 로드 후 삭제하기

<?php
    // 로컬 드라이브 폴더에서 PNG 이미지 불러오기
    $img = imagecreatefrompng('C:\xampp\htdocs\Images\img32.png');

    // 이미지 자르기
    $cropped = imagecropauto($img, IMG_CROP_BLACK);

    // PNG 파일로 변환
    imagepng($cropped);

    // 잘라낸 이미지를 파괴하여 메모리를 해제/반환합니다.
    imagedestroy($cropped);
?>

출력 결과

참고 − imagedestroy() 함수를 사용하면 $cropped 변수가 파괴되므로, 더 이상 해당 변수에 접근할 수 없습니다.

설명 − 예제 1에서는 imagecreatefrompng() 함수로 로컬 드라이브 폴더에서 이미지를 불러온 뒤, imagecropauto() 함수를 사용해 이미지의 일부를 잘라냅니다. 자르기 작업이 끝나면 imagedestroy() 함수를 호출해 이미지를 파괴합니다. 이미지가 파괴된 후에는 해당 이미지나 $cropped 변수에 더 이상 접근할 수 없습니다.

예제 2

<?php
    // 50 x 50 크기의 이미지 생성
    $img = imagecreatetruecolor(50, 50);
    
    // 메모리에서 이미지 해제
    imagedestroy($img);
?>

참고 − 위 PHP 코드에서는 imagecreatetruecolor() 함수를 사용해 50×50 크기의 이미지를 생성합니다. 이미지 생성 후 imagedestroy() 함수를 호출하여 사용된 메모리를 해제하거나 반환합니다.

이처럼 imagedestroy() 함수는 GD 라이브러리로 작업할 때 불필요한 메모리 점유를 방지하는 데 필수적인 함수입니다. 특히 대용량 이미지를 여러 개 처리하는 스크립트에서는 사용이 끝난 이미지 리소스를 즉시 해제해 주는 것이 서버 성능과 안정성 측면에서 매우 중요합니다.