썸네일을 만들 때 이미지 비율을 어떻게 유지하나요?
썸네일 만들기: 이미지 비율 유지
질문에서는 업로드된 이미지에서 썸네일을 만들어 이미지의 측면이 유지되도록 하는 것이 목표입니다. 비율. 이에 대해 자세히 설명하겠습니다.
화면 비율의 중요성
이미지의 원래 모양을 유지하고 왜곡을 방지하려면 이미지의 화면 비율을 유지하는 것이 중요합니다. 비율을 유지하지 않으면 썸네일이 찌그러지거나 늘어져 이미지의 시각적 무결성이 손상될 수 있습니다.
Imagick을 사용하여 썸네일 생성
이미지의 측면을 존중하는 썸네일을 생성하려면 비율이 높을 경우 고급 이미지 조작 기능을 제공하는 Imagick 라이브러리 활용을 고려해 보세요. 함수 예시는 다음과 같습니다.
/** * * Generate Thumbnail using Imagick class * * @param string $img * @param string $width * @param string $height * @param int $quality * @return boolean on true * @throws Exception * @throws ImagickException */ function generateThumbnail($img, $width, $height, $quality = 90) { if (is_file($img)) { $imagick = new Imagick(realpath($img)); $imagick->setImageFormat('jpeg'); $imagick->setImageCompression(Imagick::COMPRESSION_JPEG); $imagick->setImageCompressionQuality($quality); $imagick->thumbnailImage($width, $height, false, false); $filename_no_ext = reset(explode('.', $img)); if (file_put_contents($filename_no_ext . '_thumb' . '.jpg', $imagick) === false) { throw new Exception("Could not put contents."); } return true; } else { throw new Exception("No valid image provided with {$img}."); } }
이 함수는 ThumbnailImage 메서드를 사용하여 원래 가로세로 비율을 유지하면서 지정된 너비와 높이의 썸네일을 생성합니다.
대체 썸네일 생성
또는 GD 라이브러리를 사용하여 썸네일을 만들 수도 있습니다. 이미지의 종횡비를 유지하기 위해 적절한 크기를 결정해야 하기 때문에 이 접근 방식에는 더 많은 수동 계산이 필요합니다.
다음은 GD 라이브러리를 사용하여 썸네일을 만드는 방법을 보여주는 함수 예제입니다.
function makeThumbnails($updir, $img, $id) { $thumbnail_width = 134; $thumbnail_height = 189; $thumb_beforeword = "thumb"; $arr_image_details = getimagesize("$updir" . $id . '_' . "$img"); // pass id to thumb name $original_width = $arr_image_details[0]; $original_height = $arr_image_details[1]; if ($original_width > $original_height) { $new_width = $thumbnail_width; $new_height = intval($original_height * $new_width / $original_width); } else { $new_height = $thumbnail_height; $new_width = intval($original_width * $new_height / $original_height); } $dest_x = intval(($thumbnail_width - $new_width) / 2); $dest_y = intval(($thumbnail_height - $new_height) / 2); if ($arr_image_details[2] == IMAGETYPE_GIF) { $imgt = "ImageGIF"; $imgcreatefrom = "ImageCreateFromGIF"; } if ($arr_image_details[2] == IMAGETYPE_JPEG) { $imgt = "ImageJPEG"; $imgcreatefrom = "ImageCreateFromJPEG"; } if ($arr_image_details[2] == IMAGETYPE_PNG) { $imgt = "ImagePNG"; $imgcreatefrom = "ImageCreateFromPNG"; } if ($imgt) { $old_image = $imgcreatefrom("$updir" . $id . '_' . "$img"); $new_image = imagecreatetruecolor($thumbnail_width, $thumbnail_height); imagecopyresized($new_image, $old_image, $dest_x, $dest_y, 0, 0, $new_width, $new_height, $original_width, $original_height); $imgt($new_image, "$updir" . $id . '_' . "$thumb_beforeword" . "$img"); } }
이러한 기능 중 하나를 활용하면 원본 이미지의 화면 비율을 유지하는 썸네일이 제공됩니다.
위 내용은 썸네일을 만들 때 이미지 비율을 어떻게 유지하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Laravel Back End : Part 2, React가있는 React 앱 구축

PHP의 컬 : REST API에서 PHP Curl Extension 사용 방법
