> 백엔드 개발 > PHP 튜토리얼 > PHP에서 이미지를 자를 때 이미지 종횡비를 유지하는 방법은 무엇입니까?

PHP에서 이미지를 자를 때 이미지 종횡비를 유지하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-03 16:46:03
원래의
528명이 탐색했습니다.

How to Maintain Image Aspect Ratio When Cropping Images in PHP?

PHP에서 이미지 자르기

PHP에서 이미지를 자를 때, 특히 큰 이미지를 처리할 때 문제가 발생할 수 있습니다. 한 가지 해결 방법은 "이미지 축소"입니다.

주어진 예제 코드에서는 이미지가 고정된 크기(200x150)로 잘려서 더 큰 이미지에는 맞지 않을 수 있습니다. 자르기 전에 일관된 이미지 크기를 얻으려면 imagecopyresampled() 함수를 사용하는 것이 좋습니다.

다음 공식을 사용하여 썸네일을 생성할 수 있습니다.

$image = imagecreatefromjpeg($_GET['src']);
$filename = 'images/cropped_whatever.jpg';

$thumb_width = 200;
$thumb_height = 150;

$width = imagesx($image);
$height = imagesy($image);

$original_aspect = $width / $height;
$thumb_aspect = $thumb_width / $thumb_height;

if ( $original_aspect >= $thumb_aspect )
{
    // 图像更宽(纵横比意义上)
    $new_height = $thumb_height;
    $new_width = $width / ($height / $thumb_height);
}
else
{
    // 缩略图更宽
    $new_width = $thumb_width;
    $new_height = $height / ($width / $thumb_width);
}

$thumb = imagecreatetruecolor( $thumb_width, $thumb_height );

// 调整大小并裁剪
imagecopyresampled($thumb,
    $image,
    0 - ($new_width - $thumb_width) / 2, // 水平居中图像
    0 - ($new_height - $thumb_height) / 2, // 垂直居中图像
    0, 0,
    $new_width, $new_height,
    $width, $height);
imagejpeg($thumb, $filename, 80);
로그인 후 복사

이 코드는 이미지 가로 세로 비율을 고려하여 크기가 조정된 이미지가 썸네일 크기와 동일한 가로 세로 비율을 갖도록 합니다. 따라서 왜곡을 방지합니다. 크기 조정 및 자르기 후에는 원본 이미지 크기에 관계없이 일관된 크기의 이미지가 생성됩니다.

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

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