종횡비를 유지하면서 업로드된 이미지에서 축소판을 만드는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-07 02:55:03
원래의
878명이 탐색했습니다.

How to Create Thumbnails from Uploaded Images While Preserving Aspect Ratio?

종횡비 보존을 위해 업로드된 이미지에서 썸네일 만들기

소개:

사용자가 웹사이트에 이미지를 업로드하면 종횡비를 손상시키지 않고 이미지의 더 작은 버전을 표시하기 위해 축소판을 만드는 것이 바람직한 경우가 많습니다. 다음은 원본 이미지를 유지하면서 미리보기 이미지를 만드는 방법에 대한 포괄적인 가이드입니다.

과제:

귀하의 목표는 업로드된 이미지의 두 가지 버전, 즉 원본을 만드는 것입니다. 이미지와 썸네일. 원본 이미지는 서버에 저장되어야 하며 썸네일은 원본보다 화면비를 유지하는 더 작은 버전이어야 합니다.

구현:

1. 이미지 데이터 검색:

PHP에서는 $_FILES 전역 변수를 사용하여 업로드된 이미지 데이터를 검색할 수 있습니다. 이미지 데이터를 문자열로 읽어오려면 file_get_contents() 함수를 사용하세요.

2. 이미지 크기 결정:

getimagesize() 함수를 사용하여 이미지 크기를 가져옵니다. 그러면 이미지에 대한 너비, 높이 및 기타 정보가 포함된 배열이 반환됩니다.

3. 썸네일 만들기:

Imagick과 같은 이미지 처리 라이브러리를 사용하여 썸네일을 만듭니다. Imagick은 크기 조정 및 자르기를 포함하여 이미지 조작을 위한 다양한 방법을 제공합니다. 크기를 조정할 때 이미지가 늘어나거나 찌그러지지 않도록 가로 세로 비율을 유지하세요.

4. 이미지 저장:

file_put_contents() 함수를 사용하여 원본 이미지와 썸네일을 모두 서버에 저장하세요. 원본 이미지를 덮어쓰지 않도록 접두사 또는 접미사를 추가하는 등 썸네일에는 고유한 파일 이름을 사용해야 합니다.

5. 이미지 크기 조정(추가 옵션):

귀하의 서버에서 Imagick을 사용할 수 없는 경우 GD 라이브러리를 사용할 수 있습니다. 다음은 GD를 사용하여 썸네일을 생성하는 함수의 예입니다.

function makeThumbnails($updir, $img, $id)
{
    $thumbnail_width = 134;
    $thumbnail_height = 189;
    $arr_image_details = getimagesize("$updir" . $id . '_' . "$img");
    // Calculate new dimensions while preserving aspect ratio
    // ...
    // Create new image and copy from original image with resizing
    // ...
    // Save the thumbnail
    imagepng($new_image, "$updir" . $id . '_' . "thumb" . "$img");
}
로그인 후 복사

결론:

다음 단계를 따르고 적절한 이미지 처리 라이브러리를 사용하면 다음을 효과적으로 수행할 수 있습니다. 가로 세로 비율을 유지하면서 업로드된 이미지에서 축소판을 만듭니다. 이렇게 하면 축소판이 원본 이미지의 무결성을 유지하고 웹사이트나 애플리케이션의 시각적 매력을 향상시킬 수 있습니다.

위 내용은 종횡비를 유지하면서 업로드된 이미지에서 축소판을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!