PHP의 GD 라이브러리를 사용하여 이미지를 처리 할 때 ImageFlip ()는 이미지가 수평, 수직 또는 동시에 빠르게 빠르게 뒤집는 매우 편리한 기능입니다. 그러나 이미지를 뒤집은 후 이미지의 이미지 좌표 시스템을 기반으로 레이블, 좌표 지점 또는 기타 위치 마크가있는 경우 문제가 발생합니다. 원래 포인트는 더 이상 이미지의 동일한 위치에 해당하지 않습니다.
이 기사는 이미지의 주석 또는 요소가 여전히 예상 위치에 표시되도록 imageFlip () 함수를 사용한 후 좌표계를 올바르게 조정하는 방법을 소개합니다.
PHP의 ImageFlip () 함수는 PHP 5.5 이후에 제공되며 이미지를 뒤집는 데 사용됩니다.
bool imageflip ( GdImage $image , int $mode )
여기서 $ 모드는 다음 중 하나 일 수 있습니다.
img_flip_horizontal : 수평 플립
img_flip_vertical : 수직 플립
IMG_FLIP_BOTH : 수평 및 수직으로 동시에 플립
좌표 지점 (x, y) 이 표시된 사진이 있다고 가정합니다. ImageFlip ()을 사용하여 이미지를 가로로 뒤집습니다 ( IMG_FLIP_HORIZONTAL ).이 시점에서 이미지 픽셀 (x, y) 도 다른쪽으로 뒤집 히고 원래 좌표가 부정확합니다.
원래 이미지의 너비는 500px 입니다
원래 좌표 지점은 (100, 200) 입니다.
뒤집기 후에는 요점이 실제로 (500-100 = 400, 200) 여야합니다.
$newX = $imageWidth - $oldX;
$newY = $oldY;
$newX = $oldX;
$newY = $imageHeight - $oldY;
$newX = $imageWidth - $oldX;
$newY = $imageHeight - $oldY;
다음은 이미지를 뒤집고 올바른 좌표를 보여주는 방법을 보여주는 완전한 예입니다.
<?php
// 원본 이미지를로드하십시오
$imagePath = 'https://m66.net/images/sample.jpg';
$image = imagecreatefromjpeg($imagePath);
// 이미지 너비와 높이를 얻으십시오
$width = imagesx($image);
$height = imagesy($image);
// 원래 좌표 지점
$oldX = 100;
$oldY = 200;
// 수평 플립을 수행하십시오
imageflip($image, IMG_FLIP_HORIZONTAL);
// 새로운 좌표 계산
$newX = $width - $oldX;
$newY = $oldY;
// 새로운 좌표 지점을 표시하십시오(빨간색)
$red = imagecolorallocate($image, 255, 0, 0);
imagefilledellipse($image, $newX, $newY, 10, 10, $red);
// 출력 이미지
header('Content-Type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
?>
좌표 변환 로직은 이미지 플립 패턴과 밀접한 관련이 있으며 정확하게 일치해야합니다.
다중 좌표 지점을 배치로 변환 해야하는 경우 처리를위한 함수로 캡슐화하는 것이 좋습니다.
이미지 컨텐츠가 사용자 업로드에서 나온 경우 이미지 크기를 확인하고 보안 문제를 피하기 위해 먼저 입력하십시오.
ImageFlip () 는 이미지를 처리하는 데 매우 효율적인 도구이지만 이미지에서 "좌표 의미"를 일관성있게 유지하려면 플립 후 좌표 위치를 적극적으로 계산하고 업데이트해야합니다. 이 기술을 마스터하면 대화식 마킹, 이미지 주석 도구 또는 그래픽 포지셔닝 시스템과 같은 PHP에서보다 유연한 이미지 처리 기능을 구현할 수 있습니다.