PHP 이미지 처리 중에 GD 라이브러리가 제공하는 다양한 기능을 사용하여 이미지를 읽고 조작하고 생성합니다. .gd2 형식으로 이미지를 처리 할 때 PHP는 두 가지 매우 유사한 기능을 제공합니다 : imageCreatefromgd2 () 및 imageCreatefromgd2part () . 언뜻보기에는 비슷한 이름이 있고 비슷한 기능이 보이지만 실제로는 목적과 성능에 필수적인 차이가 있습니다.
imageCreateFromgd2 ()는 전체 .gd2 파일을로드하는 데 사용되는 함수입니다. 구문은 다음과 같습니다.
$im = imagecreatefromgd2('https://m66.net/images/sample.gd2');
이 기능은 전체 .gd2 파일을 디코딩하고 메모리로로드하여 이미지 리소스를 생성합니다. 이 방법은 작은 이미지를 다룰 때 직접적이고 효과적입니다.
.gd2 파일이 매우 크면 imageCreatefromgd2 ()가 전체 이미지를 메모리에로드하여 메모리 소비와 비 효율성이 높아집니다. 이것은 이미지 데이터의 일부만 필요한 시나리오에서 매우 낭비적인 것 같습니다.
위의 문제를 해결하기 위해 PHP는 imageCreateFromgd2Part () 함수를 제공하여 .gd2 파일에서 이미지 영역의 일부만로드 할 수 있습니다.
$im = imagecreatefromgd2part('https://m66.net/images/sample.gd2', $srcX, $srcY, $width, $height);
매개 변수 설명 :
$ srcx 및 $ srcy : 추출 할 영역의 시작 좌표.
$ 너비 및 $ 높이 : 추출 할 이미지 영역의 크기.
메모리 저장 : 필요한 영역 만로드하십시오.
더 빠른 응답 : 특히 웹 애플리케이션에서 이미지 썸네일 또는 로컬 이미지가 요구되는 장면에 적합합니다.
큰 이미지 처리에 적합 : imageCreatefromgd2Part ()는 고해상도 또는 큰 .gd2 이미지에 직면 할 때 더 안전한 선택입니다.
10000x10000의 .gd2 이미지가 있고 200x200 썸네일 만 생성하려고한다고 가정하십시오.
$full = imagecreatefromgd2('https://m66.net/images/large.gd2');
$thumb = imagecreatetruecolor(200, 200);
imagecopyresampled($thumb, $full, 0, 0, 0, 0, 200, 200, 10000, 10000);
메모리 압력이 높고 속도가 느립니다.
$part = imagecreatefromgd2part('https://m66.net/images/large.gd2', 1000, 1000, 500, 500);
$thumb = imagecreatetruecolor(200, 200);
imagecopyresampled($thumb, $part, 0, 0, 0, 0, 200, 200, 500, 500);
더 효율적이며 이미지의 부분 영역에만 적합합니다.
imageCreatefromgd2 () 및 imageCreatefromgd2part () 는 .gd2 이미지를 읽을 수 있지만 실제 개발에서는 필요에 따라 선택해야합니다. 작거나 전체 이미지를 읽는 경우 imageCreatefromgd2 ()를 계속 사용할 수 있습니다. 그러나 큰 이미지에 직면하고 있거나 이미지 클립을 효율적으로 처리하거나 메모리에 민감한 환경에서 ImageCreatefromgd2part ()가 의심 할 여지없이 더 나은 선택입니다.
고성능 이미지 처리의 맥락에서, 기존 전체 이미지 판독 방법 대신 imageCreateFromgd2Part ()를 사용하여 효율성 및 프로그램 안정성을 향상시키는 것이 좋습니다.