>  기사  >  백엔드 개발  >  PHP를 사용하여 이미지 파일 크기를 일괄 압축하는 방법

PHP를 사용하여 이미지 파일 크기를 일괄 압축하는 방법

WBOY
WBOY원래의
2023-08-25 14:25:451782검색

PHP를 사용하여 이미지 파일 크기를 일괄 압축하는 방법

PHP를 사용하여 이미지 파일 크기를 일괄 압축하는 방법

소개:
인터넷이 발달하면서 사진은 일상 생활에서 점점 더 흔해지고 있습니다. 하지만 크고 작은 사진 파일 역시 저장 및 전송 문제를 야기합니다. 이미지 파일의 크기를 줄이고 웹사이트의 로딩 속도를 향상시키기 위해 PHP를 사용하여 이미지 파일 크기를 일괄 압축할 수 있습니다. 이 기사에서는 PHP를 사용하여 이미지 파일 크기를 일괄 압축하는 방법을 소개하고 관련 코드 예제를 제공합니다.

단계:

  1. 이미지 파일 목록 가져오기:
    먼저 압축할 이미지 파일 목록을 가져와야 합니다. 이는 폴더에 있는 이미지 파일을 탐색하거나 데이터베이스에 저장된 이미지 경로를 읽어서 얻을 수 있습니다. 다음은 폴더 아래의 모든 이미지 파일을 가져오기 위한 샘플 코드 조각입니다.
$directory = 'images/';
$fileList = glob($directory . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
  1. 압축된 이미지의 대상 크기와 압축 품질을 정의합니다.
    이미지 압축을 수행하기 전에 대상의 크기와 압축을 정의해야 합니다. 이미지 품질. 일반적으로 사진 크기를 원래 크기의 절반으로 줄이고 압축 품질을 80-90으로 설정할 수 있습니다. 다음은 대상 크기와 압축 품질을 정의하는 샘플 코드 조각입니다.
$targetWidth = 200; // 目标宽度
$targetQuality = 80; // 目标质量
  1. 이미지 압축 수행:
    다음으로 이미지 압축을 위해 PHP의 GD 라이브러리를 사용할 수 있습니다. GD 라이브러리는 이미지 처리에 도움이 되는 다양한 이미지 처리 기능을 제공합니다. 다음은 단일 이미지를 압축하기 위한 샘플 코드 조각입니다.
foreach($fileList as $file) {
    $imageInfo = getimagesize($file);
    
    $sourceWidth = $imageInfo[0]; // 原始宽度
    $sourceHeight = $imageInfo[1]; // 原始高度
    
    $sourceImage = imagecreatefromjpeg($file); // 根据文件类型选择对应的函数
    
    $targetHeight = round($sourceHeight * $targetWidth / $sourceWidth); // 计算目标高度
    
    $targetImage = imagecreatetruecolor($targetWidth, $targetHeight); // 创建目标图像
    
    imagecopyresampled($targetImage, $sourceImage, 0, 0, 0, 0, $targetWidth, $targetHeight, $sourceWidth, $sourceHeight); // 图像复制和缩放
    
    imagejpeg($targetImage, $file, $targetQuality); // 保存压缩后的图片
    
    imagedestroy($sourceImage); // 释放资源
    imagedestroy($targetImage);
}
  1. 전체 코드 참조:
    다음은 이미지 파일 크기를 일괄 압축하기 위한 전체 코드 샘플입니다.
$directory = 'images/';
$fileList = glob($directory . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);

$targetWidth = 200; // 目标宽度
$targetQuality = 80; // 目标质量

foreach($fileList as $file) {
    $imageInfo = getimagesize($file);
    
    $sourceWidth = $imageInfo[0]; // 原始宽度
    $sourceHeight = $imageInfo[1]; // 原始高度
    
    $sourceImage = imagecreatefromjpeg($file); // 根据文件类型选择对应的函数
    
    $targetHeight = round($sourceHeight * $targetWidth / $sourceWidth); // 计算目标高度
    
    $targetImage = imagecreatetruecolor($targetWidth, $targetHeight); // 创建目标图像
    
    imagecopyresampled($targetImage, $sourceImage, 0, 0, 0, 0, $targetWidth, $targetHeight, $sourceWidth, $sourceHeight); // 图像复制和缩放
    
    imagejpeg($targetImage, $file, $targetQuality); // 保存压缩后的图片
    
    imagedestroy($sourceImage); // 释放资源
    imagedestroy($targetImage);
}

요약:
PHP 사용 이미지 파일 크기 압축 일괄적으로 이미지 파일의 크기를 효과적으로 줄이고 웹사이트의 로딩 속도를 향상시킬 수 있습니다. 이 기사에서는 간단한 방법과 해당 코드 예제를 제공하지만 실제 상황에 따라 조정하고 확장해야 합니다. 이 기사가 이미지 파일을 더 잘 처리하고 최적화하는 데 도움이 되기를 바랍니다.

위 내용은 PHP를 사용하여 이미지 파일 크기를 일괄 압축하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.