현재 위치: > 최신 기사 목록> Flip + Compress + 저장 : 완전한 이미지 처리 흐름

Flip + Compress + 저장 : 완전한 이미지 처리 흐름

M66 2025-05-17

일일 개발에서 이미지 처리는 이미지 플립 (미러), 압축 이미지 크기, 최적화 된 이미지 저장 등과 같은 매우 일반적인 요구 사항입니다. PHP에서는 내장 GD 라이브러리를 사용하여 이러한 기능을 쉽게 구현할 수 있습니다.

이 기사를 사용하면 PHP를 통한 이미지 플립, 압축 및 저장의 처리 흐름을 완전히 파악하기 위해 단계별로 진행됩니다. 이미지 업로드 인터페이스를 개발하든 이미지 관리 시스템을 구축하든이 기사에서는 실제 참조를 제공 할 수 있습니다.

1. 준비 : GD 라이브러리가 활성화되어 있는지 확인하십시오

먼저 서버에 GD 라이브러리가 활성화되어 있는지 확인하십시오. GD 라이브러리가 PHP에서 지원되는지 확인하십시오.

 <?php
if (extension_loaded('gd')) {
    echo "GD 라이브러리가 활성화되었습니다";
} else {
    echo "설치하고 활성화하십시오 GD 도서관";
}
?>

2. 이미지로드

이미지 파일을로드하기 위해 JPEG 이미지를 예제로 사용하겠습니다.

 <?php
$imagePath = 'uploads/sample.jpg';
$image = imagecreatefromjpeg($imagePath);
if (!$image) {
    die('이미지를로드하지 못했습니다');
}
?>

3. 이미지 플립 (수평/수직 미러링)

수평 플립 (거울)

 <?php
function flipImageHorizontally($image) {
    $width = imagesx($image);
    $height = imagesy($image);
    $flipped = imagecreatetruecolor($width, $height);
    
    for ($x = 0; $x < $width; $x++) {
        imagecopy($flipped, $image, $width - $x - 1, 0, $x, 0, 1, $height);
    }
    return $flipped;
}

$image = flipImageHorizontally($image);
?>

수직 플립

 <?php
function flipImageVertically($image) {
    $width = imagesx($image);
    $height = imagesy($image);
    $flipped = imagecreatetruecolor($width, $height);
    
    for ($y = 0; $y < $height; $y++) {
        imagecopy($flipped, $image, 0, $height - $y - 1, 0, $y, $width, 1);
    }
    return $flipped;
}

// $image = flipImageVertically($image); // 수직으로 뒤집어지면 타협
?>

IV. 이미지 압축

이미지 압축은 일반적으로 저장시 이미지의 품질을 조정하는 것을 의미합니다. JPEG 이미지의 경우 절약 중 (0-100) 동안 압축 품질을 설정할 수 있습니다.

 <?php
$compressedPath = 'uploads/compressed.jpg';
$quality = 75; // 값이 작을수록,압축이 높아집니다,이미지 품질이 낮습니다

if (!imagejpeg($image, $compressedPath, $quality)) {
    die('이미지를 압축하고 저장하지 못했습니다');
}
?>

5. 처리 된 이미지 링크를 저장하고 출력하십시오

성공적인 압축 및 저장 후 이미지 액세스 링크가 제공 될 수 있습니다.

 <?php
echo '이미지 처리가 성공했습니다,링크를 방문하십시오:<a href="https://m66.net/uploads/compressed.jpg">사진을 보려면 클릭하십시오</a>';
?>

6. 완전한 캡슐화 코드 (첨부)

재사용 성을 향상시키기 위해 전체 프로세스를 함수로 캡슐화 할 수도 있습니다.

 <?php
function processImage($inputPath, $outputPath, $flipType = 'horizontal', $quality = 80) {
    $image = imagecreatefromjpeg($inputPath);
    if (!$image) return false;

    if ($flipType === 'horizontal') {
        $image = flipImageHorizontally($image);
    } elseif ($flipType === 'vertical') {
        $image = flipImageVertically($image);
    }

    return imagejpeg($image, $outputPath, $quality);
}
?>

7. 요약

PHP의 GD 라이브러리를 통해 다음을 포함하여 이미지를 매우 유연하게 처리 할 수 ​​있습니다.

  • 이미지 파일로드;

  • 플립 (수평/수직);

  • 압축 및 저장;

  • 출력 처리 결과.

이 프로세스는 대부분의 웹 애플리케이션 시나리오, 특히 사용자가 이미지를 업로드 한 후 최적화 해야하는 기능에 적합합니다.

자르기, 워터 마킹 및 크기 조정과 같은 이미지 처리에 대한 요구가 더 많으면 GD 라이브러리도 유능하며 향후 더 고급 이미지 처리 기사를 가져올 것입니다. 계속 지켜봐주세요!