PHP에서 ImageFlip 함수는 이미지를 뒤집는 데 사용되며 이미지를 처리 할 때 매우 일반적입니다. 그러나 투명한 배경 (예 : PNG 형식)을 가진 이미지를 사용하면 ImageFlip을 사용하면 투명한 배경이 부분적으로 손실되거나 불투명해질 수 있습니다. 이 기사는 ImageFlip 함수를 사용할 때 투명한 배경으로 이미지를 올바르게 처리하는 방법을 살펴 봅니다.
PHP의 ImageFlip 함수는 이미지를 가로 또는 수직으로 뒤집는 데 사용됩니다. 이 기능의 기본 사용은 다음과 같습니다.
bool imageflip(resource $image, int $mode)
$ image : image resource, 일반적으로 imageCreateFrommpng () , imageCreatefromjpeg () 등과 같은 함수를 통해 생성 된 이미지입니다.
$ 모드 : 플립 모드, 다음은 몇 가지 일반적인 모드입니다.
img_flip_horizontal : 수평 플립
img_flip_vertical : 수직 플립
IMG_FLIP_BOTH : 수평 및 수직으로 동시에 플립
투명한 배경을 가진 PNG 이미지를 사용하면 ImageFlip 함수를 직접 사용하면 투명 영역이 흰색 또는 다른 불투명 한 색상으로 변할 수 있습니다. 이미지의 투명성 정보가 제대로 유지되지 않기 때문입니다. 이 문제를 해결하려면 이미지를 뒤집을 때 투명한 배경 부분이 투명하게 유지되어야합니다.
투명한 배경을 올바르게 처리하려면 다음 단계를 수행해야합니다.
이미지 리소스를 작성할 때는 투명성 지원을 활성화해야합니다. ImageAlphableending ()를 False 로 설정하고 imagesAvealpha ()를 사용하여 이미지의 투명성 정보가 보존되도록 할 수 있습니다.
다음은 샘플 코드입니다.
<?php
// 이미지로드
$image = imagecreatefrompng('image.png');
// 하이브리드 모드를 비활성화합니다,투명성이 남아 있는지 확인하십시오
imagealphablending($image, false);
// 저장을 활성화하십시오 alpha 통로
imagesavealpha($image, true);
// 사용imageflip함수는 이미지를 뒤집습니다
imageflip($image, IMG_FLIP_HORIZONTAL);
// 브라우저에 이미지를 출력합니다
header('Content-Type: image/png');
imagepng($image);
// 리소스를 자유롭게합니다
imagedestroy($image);
?>
imageCreateFrommpng ( 'image.png') : 파일에서 png image를로드합니다.
ImageAlphableding ($ image, false) : 블렌드 모드를 비활성화하여 투명성을 덮어 쓰지 않도록합니다.
ImagesAvealpha ($ image, true) : PHP에 이미지의 투명성 채널을 저장하도록 지시합니다.
ImageFlip ($ image, img_flip_horizontal) : 이미지를 가로로 뒤집습니다.
ImagePng ($ image) : 뒤집힌 PNG 이미지를 출력합니다.
이러한 설정을 사용하면 투명 섹션이 그대로 유지되며 불투명 한 배경으로 대체되는 것을 피할 수 있습니다.
다른 이미지 형식 (예 : JPEG)의 경우 투명성을 지원하지 않기 때문에 투명성을 고려할 필요가 없습니다. 이러한 이미지를 처리하는 경우 ImageFlip 함수는 예상대로 작동하며 투명성 문제가 포함되지 않습니다.
이는 일반적으로 이미지를로드 할 때 투명성 처리 옵션이 올바르게 설정되지 않기 때문에 투명 배경이 기본 흰색으로 채워지기 때문입니다. 이 문제는 ImageAlphableding ($ image, false) 및 ImagesAvealpha ($ image, true)를 사용하여 해결할 수 있습니다.
이미지 품질이 저하되면 출력시 부적절한 인코딩 방법으로 인한 것일 수 있습니다. ImagePng ()을 사용하여 PNG 형식 이미지를 저장하면 고품질 투명성을 자동으로 유지합니다. JPEG 이미지 인 경우 압축 품질 설정을 고려할 수 있습니다.