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

PHP imagecreatefrompng() 함수로 PNG 파일·URL에서 새 이미지 생성하는 방법

PHP에서 imagecreatefrompng()는 내장 함수로, PNG 파일 또는 URL을 기반으로 새 이미지를 생성할 때 사용합니다. 이 함수는 지정한 파일명으로부터 가져온 이미지를 나타내는 이미지 식별자(image identifier)를 반환하며, 이후 GD 라이브러리의 다양한 이미지 처리 함수와 함께 활용할 수 있습니다.

문법

resource imagecreatefrompng(string $filename)

매개변수

imagecreatefrompng()는 단 하나의 매개변수 $filename만 받습니다. 이 매개변수에는 이미지 파일의 이름 또는 PNG 이미지가 위치한 경로(로컬 경로 또는 URL)를 지정합니다.

반환 값

함수가 성공적으로 실행되면 이미지 리소스 식별자를 반환하고, 실패하면 false를 반환하며 오류 메시지를 출력합니다.

예제 1 – 불러온 PNG 이미지를 브라우저에 표시하기

<?php
    // 로컬 드라이브/파일에서 이미지 불러오기
    $img = imagecreatefrompng('C:\xampp\htdocs\Images\img29.png');
    // 불러온 PNG 이미지를 브라우저에 출력
    header('Content-type: image/png');
    imagepng($img);
    imagedestroy($img);
?>

출력 결과

PHP imagecreatefrompng() 함수로 PNG 파일·URL에서 새 이미지 생성하는 방법

위 예제에서는 imagecreatefrompng()로 로컬 경로의 PNG 이미지를 불러온 뒤, header()로 콘텐츠 타입을 image/png로 지정하고 imagepng()를 호출해 브라우저에 이미지를 그대로 출력합니다. 마지막에는 imagedestroy()를 사용해 메모리에 할당된 이미지 리소스를 해제합니다.

예제 2 – PNG 이미지를 불러와 다른 형식으로 저장하기

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

    // 이미지 좌우 반전 (필요한 경우 주석 해제)
    // imageflip($img, IMG_FLIP_HORIZONTAL);

    // 불러온 이미지를 JPEG로 변환해 지정한 로컬 경로에 저장
    imagejpeg($img, 'C:\xampp\htdocs\pic.jpg');
    imagedestroy($img);
?>

출력 결과

PHP imagecreatefrompng() 함수로 PNG 파일·URL에서 새 이미지 생성하는 방법

설명 – 예제 2에서는 imagecreatefrompng() 함수로 로컬 경로의 PNG 이미지를 불러온 후, imagejpeg() 함수를 사용해 해당 이미지를 JPEG 형식으로 변환하여 지정한 로컬 드라이브 경로에 저장했습니다. 두 번째 인수에 저장할 파일의 전체 경로를 전달하면 브라우저에 출력하지 않고 파일로 바로 저장할 수 있습니다.

참고 사항

URL을 통해 원격 서버의 PNG 이미지를 불러오려면 php.ini 설정에서 allow_url_fopen 옵션이 활성화되어 있어야 하며, 다음과 같이 작성할 수 있습니다.

$img = imagecreatefrompng('https://example.com/images/sample.png');

또한 예제 1처럼 이미지를 브라우저에 직접 표시할 수도 있고, 예제 2처럼 다른 형식으로 변환해 저장할 수도 있습니다. 필요에 따라 imageflip(), imagescale() 등의 함수를 조합하면 불러온 이미지에 다양한 편집 작업을 적용할 수 있습니다.