현재 위치: > 최신 기사 목록> imageCreatefrommpng ()를 사용할 때 이미지의 너비와 높이를 읽거나 처리하는 방법?

imageCreatefrommpng ()를 사용할 때 이미지의 너비와 높이를 읽거나 처리하는 방법?

M66 2025-06-28

PHP에서 imageCreateFrommpng () 함수는 PNG 형식 이미지 파일에서 이미지 리소스 (GD Image Resource)를 작성하는 데 사용됩니다. 이 기능은 이미지 파일을 처리하는 데 매우 일반적입니다. 특히 동적 이미지 생성, 이미지 처리 또는 이미지 편집과 관련 하여이 기능. 그러나 많은 개발자가 이미지 리소스를 만들기 위해 imageCreateFrommpng ()를 사용한 후에는 종종 추가 처리를 위해 이미지의 너비와 높이를 얻어야합니다.

이 기사에서는 imageCreateFrommpng () 함수를 사용할 때 이미지의 너비와 높이를 읽고 처리하는 방법에 대해 자세히 설명합니다.

1. ImagesX ()imagesy () 함수를 사용하여 이미지 너비와 높이를 얻습니다.

PHP는 이미지 자원의 너비와 높이를 얻기 위해 imagesx ()imagesy ()의 두 가지 함수를 제공합니다. 이 두 기능을 통해 imageCreateFrommpng () 호출하여 이미지 리소스를 작성 한 후 이미지의 특정 크기를 얻을 수 있습니다.

샘플 코드 :

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 짐 PNG 이미지 파일</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefrompng</span></span><span>(</span><span><span class="hljs-string">'path/to/your/image.png'</span></span><span>);

</span><span><span class="hljs-comment">// 이미지의 너비를 얻으십시오</span></span><span>
</span><span><span class="hljs-variable">$width</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagesx</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);

</span><span><span class="hljs-comment">// 이미지의 높이를 얻으십시오</span></span><span>
</span><span><span class="hljs-variable">$height</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagesy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);

</span><span><span class="hljs-comment">// 출력 이미지의 너비와 높이</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"이미지의 너비는입니다: "</span></span><span> . </span><span><span class="hljs-variable">$width</span></span><span> . </span><span><span class="hljs-string">" 픽셀\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"이미지의 높이는입니다: "</span></span><span> . </span><span><span class="hljs-variable">$height</span></span><span> . </span><span><span class="hljs-string">" 픽셀\n"</span></span><span>;

</span><span><span class="hljs-comment">// 이미지 자원을 파괴하십시오</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

이 예에서는 먼저 imageCreateFrommpng () 함수를 사용하여 이미지 파일을로드 한 다음 imagesx ()를 사용하여 이미지의 너비를 얻고 이미지 의 높이를 사용하여 이미지의 높이를 얻으십시오. 마지막으로 이미지의 너비와 높이를 브라우저에 출력하십시오.

2. getImagesize () 결합하여 이미지 너비와 높이를 얻습니다

imagesx ()imagesy ()를 사용하는 것 외에도 getImagesize () 함수를 사용하여 이미지의 너비와 높이를 얻을 수도 있습니다. getImagesize ()는 이미지의 크기를 반환 할뿐만 아니라 이미지의 MIME 유형의 이미지 유형 등을 포함하여 더 많은 이미지 정보를 반환합니다. 이는 파일 정보를 처리 해야하는 시나리오에 매우 유용합니다.

샘플 코드 :

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 사용 getimagesize() 이미지의 너비를 얻으십시오和高度</span></span><span>
</span><span><span class="hljs-variable">$image_info</span></span><span> = </span><span><span class="hljs-title function_ invoke__">getimagesize</span></span><span>(</span><span><span class="hljs-string">'path/to/your/image.png'</span></span><span>);

</span><span><span class="hljs-comment">// 이미지의 너비를 얻으십시오</span></span><span>
</span><span><span class="hljs-variable">$width</span></span><span> = </span><span><span class="hljs-variable">$image_info</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>];

</span><span><span class="hljs-comment">// 이미지의 높이를 얻으십시오</span></span><span>
</span><span><span class="hljs-variable">$height</span></span><span> = </span><span><span class="hljs-variable">$image_info</span></span><span>[</span><span><span class="hljs-number">1</span></span><span>];

</span><span><span class="hljs-comment">// 출력 이미지의 너비와 높이</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"이미지의 너비는입니다: "</span></span><span> . </span><span><span class="hljs-variable">$width</span></span><span> . </span><span><span class="hljs-string">" 픽셀\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"이미지의 높이는입니다: "</span></span><span> . </span><span><span class="hljs-variable">$height</span></span><span> . </span><span><span class="hljs-string">" 픽셀\n"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

여기서 getImagesize ()는 배열을 반환합니다. 배열의 첫 번째 요소 ( $ im

3. 이미지의 너비와 높이를 처리하십시오

많은 이미지 처리 시나리오에서는 이미지의 너비와 높이에 따라 일부 처리를 수행해야 할 수도 있습니다. 예를 들어, 이미지의 크기를 조정하고 이미지를 자르십시오. 이미지의 너비와 높이를 얻어 이러한 기능을 달성 할 수 있습니다.

3.1 이미지 스케일링

이미지를 지정된 너비와 높이로 확장 해야하는 경우 imageecopyresampled () 함수를 사용할 수 있습니다.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 짐이미지 파일</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefrompng</span></span><span>(</span><span><span class="hljs-string">'path/to/your/image.png'</span></span><span>);

</span><span><span class="hljs-comment">// 원본 이미지의 너비와 높이를 얻으십시오</span></span><span>
</span><span><span class="hljs-variable">$width</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagesx</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-variable">$height</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagesy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);

</span><span><span class="hljs-comment">// 새로운 너비와 높이를 설정하십시오</span></span><span>
</span><span><span class="hljs-variable">$new_width</span></span><span> = </span><span><span class="hljs-number">200</span></span><span>;
</span><span><span class="hljs-variable">$new_height</span></span><span> = </span><span><span class="hljs-number">150</span></span><span>;

</span><span><span class="hljs-comment">// 새 빈 이미지를 만듭니다</span></span><span>
</span><span><span class="hljs-variable">$new_image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-variable">$new_width</span></span><span>, </span><span><span class="hljs-variable">$new_height</span></span><span>);

</span><span><span class="hljs-comment">// 사용 imagecopyresampled() 스케일링 이미지</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagecopyresampled</span></span><span>(</span><span><span class="hljs-variable">$new_image</span></span><span>, </span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$new_width</span></span><span>, </span><span><span class="hljs-variable">$new_height</span></span><span>, </span><span><span class="hljs-variable">$width</span></span><span>, </span><span><span class="hljs-variable">$height</span></span><span>);

</span><span><span class="hljs-comment">// 확대 된 이미지를 출력하십시오</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Type: image/png'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagepng</span></span><span>(</span><span><span class="hljs-variable">$new_image</span></span><span>);

</span><span><span class="hljs-comment">// 이미지 자원을 파괴하십시오</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$new_image</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

이 예에서는 PNG 이미지를로드하고 너비와 높이를 가져오고 imageCopyResAmpled () 함수를 사용하여 지정된 200x150 크기로 확장합니다. 마지막으로 imagePng ()를 통해 스케일링 된 이미지를 출력합니다.

3.2 이미지 자르기

이미지에서 부품을 자르려면 너비와 높이에 따라 해당 작업을 수행 할 수도 있습니다.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 짐이미지 파일</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefrompng</span></span><span>(</span><span><span class="hljs-string">'path/to/your/image.png'</span></span><span>);

</span><span><span class="hljs-comment">// 이미지의 너비를 얻으십시오和高度</span></span><span>
</span><span><span class="hljs-variable">$width</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagesx</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-variable">$height</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagesy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);

</span><span><span class="hljs-comment">// 작물 면적의 좌표와 치수를 설정하십시오</span></span><span>
</span><span><span class="hljs-variable">$x</span></span><span> = </span><span><span class="hljs-number">50</span></span><span>; </span><span><span class="hljs-comment">// 수평 축 시작</span></span><span>
</span><span><span class="hljs-variable">$y</span></span><span> = </span><span><span class="hljs-number">50</span></span><span>; </span><span><span class="hljs-comment">// 수직 좌표 시작</span></span><span>
</span><span><span class="hljs-variable">$crop_width</span></span><span> = </span><span><span class="hljs-number">100</span></span><span>;
</span><span><span class="hljs-variable">$crop_height</span></span><span> = </span><span><span class="hljs-number">100</span></span><span>;

</span><span><span class="hljs-comment">// 새 빈 이미지를 만듭니다</span></span><span>
</span><span><span class="hljs-variable">$cropped_image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-variable">$crop_width</span></span><span>, </span><span><span class="hljs-variable">$crop_height</span></span><span>);

</span><span><span class="hljs-comment">// 사용 imagecopy() 절단을 수행하십시오</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagecopy</span></span><span>(</span><span><span class="hljs-variable">$cropped_image</span></span><span>, </span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$x</span></span><span>, </span><span><span class="hljs-variable">$y</span></span><span>, </span><span><span class="hljs-variable">$crop_width</span></span><span>, </span><span><span class="hljs-variable">$crop_height</span></span><span>);

</span><span><span class="hljs-comment">// 출력 자른 이미지</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Type: image/png'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagepng</span></span><span>(</span><span><span class="hljs-variable">$cropped_image</span></span><span>);

</span><span><span class="hljs-comment">// 이미지 자원을 파괴하십시오</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$cropped_image</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

이 예에서는 좌표 (50, 50) 에서 시작하여 100x100 크기의 이미지에서 영역을 자르고 자른 이미지를 출력합니다.

요약

imageCreateFrommpng ()을 사용하여 이미지 파일을로드 한 후 이미지의 너비와 높이를 얻는 것은 이미지 처리의 기본 요구 사항입니다. imagesx ()imagesy () 함수를 통해 이미지의 너비와 높이를 직접 얻거나 getImagesize ()를 사용하여 이미지에 대한 자세한 정보를 얻을 수 있습니다. 이미지 처리의 실제 응용에서 폭과 높이 값은 종종 크기, 작물 이미지 및 기타 작업을 조정하여 원하는 효과를 달성하는 데 사용됩니다.

위의 것은 PNG 이미지를 처리 ​​할 때 폭과 높이를 읽기위한 기본 방법과 기술입니다. 이러한 기능을 이해 한 후에는 PHP에서 이미지 처리를 더 잘 수행 할 수 있습니다.