이미지를 처리 할 때 특히 배치 이미지 처리 시나리오에서 이미지를 처리 할 때는 종종 (수평 또는 수직) 이미지를 뒤집어야합니다. PHP는 서버 측 언어이지만 내장 GD 이미지 처리 라이브러리를 통해이 기능을 쉽게 구현할 수 있습니다. 이 기사에서는 지정된 디렉토리에서 모든 이미지 파일을 뒤집는 PHP 스크립트를 작성하고 뒤집힌 이미지를 다른 디렉토리에 저장하는 방법을 알려줍니다.
서버 환경에 GD 라이브러리가 활성화되어 있는지 확인하십시오. 다음 방법으로 확인할 수 있습니다.
<?php
phpinfo();
?>
브라우저 에서이 스크립트에 액세스 한 후 GD 지원을 검색하십시오. 활성화되면 이미지 처리 작업을 수행 할 수 있습니다.
다음 단계를 완료해야합니다.
이미지가 포함 된 소스 디렉토리를 지정합니다.
디렉토리의 모든 이미지 파일을 가로 지르십시오.
GD 라이브러리를 사용하여 각 이미지를로드하십시오.
이미지를 뒤집습니다 (수평 또는 수직);
뒤집힌 이미지를 대상 디렉토리에 저장하십시오.
다음은 완전한 예제 스크립트입니다.
<?php
$sourceDir = __DIR__ . '/images/originals';
$targetDir = __DIR__ . '/images/flipped';
// 대상 디렉토리를 만듭니다(존재하지 않는 경우)
if (!file_exists($targetDir)) {
mkdir($targetDir, 0755, true);
}
// 지원되는 이미지 유형
$allowedExtensions = ['jpg', 'jpeg', 'png', 'gif'];
// 소스 디렉토리에서 파일을 스캔하십시오
$files = scandir($sourceDir);
foreach ($files as $file) {
$filePath = $sourceDir . '/' . $file;
// 뛰어 올라 . 그리고 ..
if (in_array($file, ['.', '..'])) {
continue;
}
// 파일 확장자를 얻으십시오
$extension = strtolower(pathinfo($file, PATHINFO_EXTENSION));
// 비 이미지 파일을 필터링합니다
if (!in_array($extension, $allowedExtensions)) {
continue;
}
// 이미지로드
switch ($extension) {
case 'jpg':
case 'jpeg':
$image = imagecreatefromjpeg($filePath);
break;
case 'png':
$image = imagecreatefrompng($filePath);
break;
case 'gif':
$image = imagecreatefromgif($filePath);
break;
default:
continue 2;
}
// 이미지 크기를 얻으십시오
$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);
}
// 새 이미지를 저장하십시오
$targetPath = $targetDir . '/' . $file;
switch ($extension) {
case 'jpg':
case 'jpeg':
imagejpeg($flipped, $targetPath);
break;
case 'png':
imagepng($flipped, $targetPath);
break;
case 'gif':
imagegif($flipped, $targetPath);
break;
}
// 기억을 청소하십시오
imagedestroy($image);
imagedestroy($flipped);
echo "처리 된 이미지:$file\n";
}
echo "배치 플립이 완료되었습니다。뒤집힌 이미지를 방문하여 이동하십시오:http://m66.net/images/flipped/";
?>
디렉토리 권한이 올바르게 설정되고 PHP 프로세스가 대상 디렉토리에 액세스하고 쓸 수있는 권한이 있는지 확인하십시오.
수직으로 뒤집으려면 플립 로직을 수정하고 이에 따라 imageCopy () 에서 좌표를 조정하십시오.
투명한 PNG 또는 GIF 이미지의 경우 추가 투명 처리 로직이 필요할 수 있습니다. 그렇지 않으면 검은 색 배경이 나타납니다.
이 기사에서 제공 한 PHP 스크립트를 통해 배치 이미지 플립 작업을 빠르게 구현할 수 있습니다. 그림의 배치 정렬, 자동화 된 처리 또는 온라인 사진 도구 개발이든, 이러한 작은 기능은 효율성을 크게 향상시킬 수 있습니다. 이 스크립트를 웹 사이트에 통합하려는 경우 간단한 사용자 인터페이스 또는 파일 업로드 로직을 추가하여 기능을보다 완료하도록 잊지 마십시오!