PHP의 ImageFlip () 함수를 사용하는 경우 일부 개발자는 기능의 "무효"문제를 겪을 수 있습니다. 즉, 통화 후 이미지가 변경되지 않거나 프로그램을 전혀 실행할 수 없습니다. 이 경우 가장 일반적인 질문은 다음과 같습니다.
이 기사는 ImageFlip ()가 여러 관점에서 유효하지 않은 이유를 분석하고 솔루션을 제공합니다.
ImageFlip () 는 PHP가 이미지를 수평으로, 수직 또는 대각선으로 뒤집기 위해 제공하는 함수입니다. 이 기능은 PHP 5.5.0에 도입되었으며 기본 구문은 다음과 같습니다.
bool imageflip(GdImage $image, int $mode)
여기서 $ 모드는 다음 상수 중 하나 일 수 있습니다.
IMG_FLIP_HORIZONTAL - 수평 플립
img_flip_vertical - 수직 플립
IMG_FLIP_BOTH - 수평 및 수직 동시에 플립 (180도 회전에 해당)
PHP 5.5.0 이후 ImageFlip ()가 도입되었습니다. 이전 버전 (예 : PHP 5.3 또는 5.4) 에서이 기능을 사용하는 경우 오류를 직접보고하거나 함수가 전혀 존재하지 않습니다.
해결책:
현재 PHP 버전 확인 :
php -v
버전이 5.5보다 낮은 경우 PHP를 5.5 이상으로 업그레이드하십시오. PHP 7.X 또는 8.X를 사용하는 것이 좋습니다.
ImageFlip ()는 본질적으로 GD 이미지 리소스에 작용합니다. 따라서 이미지 형식을 imageCreateFromxxx () 에 의해 성공적으로로드 할 수없는 경우 후속 imageFlip () 작업이 자연스럽게 유효합니다.
일반적인 오류 :
Webp와 같이 GD에서 지원하지 않는 형식은 Heic을 사용합니다.
이미지 경로가 잘못되었거나 권한이 충분하지 않습니다.
잘못된 함수는 JPEG의 imageCreateFrommpng () 와 같은 이미지를로드하는 데 사용되었습니다.
샘플 코드 (JPEG 이미지의 경우) :
<?php
$imagePath = 'https://m66.net/images/sample.jpg';
$image = imagecreatefromjpeg($imagePath);
if ($image === false) {
die('이미지로드가 실패했습니다,이미지 형식과 경로가 올바른지 확인하십시오。');
}
imageflip($image, IMG_FLIP_HORIZONTAL);
// 브라우저에 사진을 출력합니다
header('Content-Type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
?>
때때로 ImageFlip ()는 실제로 효과가 있지만 이미지가 브라우저에 의해 캐시되기 때문에 페이지를 새로 고침 한 후에도 이전 이미지가 여전히 표시되어 사람들에게 "기능이 유효하지 않다는 환상"을 제공합니다.
해결책:
https://m66.net/images/flip.php?t= <? = time ()?
PHP 출력 헤더에 캐시 방지 명령어 추가 :
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Sat, 1 Jan 2000 00:00:00 GMT");
요약하면, ImageFlip () 함수의 무효의 이유는 낮은 PHP 버전, 호환되지 않는 이미지 형식, 잘못된 경로 또는 권한, 심지어 브라우저 캐시로 인한 환상을 포함 할 수 있습니다. 개발 중에는 버전을 확인하고 이미지로드 기능을 디버깅하고 로그 추가 등을 추가 할 수 있습니다.
코드 환경이 GD 라이브러리를 지원하고 이미지를 올바르게로드 한 후 이미지 flip () 함수는 일반적으로 올바르게 작동합니다. 여전히 불확실한 코드가 있다면, 당신은 그것을 게시 할 수 있고 그것을 볼 수 있도록 도와 드리겠습니다.