php
이미지 회전반영과 썸네일 생성
- 관리자 2023.04.21 php 인기
-
- 786
- 0
<?php
/*-----------------------------------------------------------------------------
* 촬영 회전값 복구
*
-----------------------------------------------------------------------------*/
//이미지 회전
function Jpg_Rotation($file_path, $jpg_quality) {
//파일이름 (경로제거)
$file_name = basename($file_path);
//이미지 정보
$imgsize = @getimagesize($file_path);
//정보가 없다면
if (!$imgsize) return;
//확장자 정의
$extensions = array(1 => 'gif', 2 => 'jpg', 3 => 'png', 18 => 'webp');
//파일확장자 재정의
$file_ext = $extensions[$imgsize[2]];
//jpg 아니면 리턴
if ($file_ext !== "jpg") return;
//새 이미지를 만든다
$im = imagecreatefromjpeg($file_path);
//이미지 방향찾기
$exif = @exif_read_data($file_path);
//기본각도
$degrees = 0;
//이미지 회전
if (!empty($exif['Orientation'])) {
switch ($exif['Orientation']) {
case 8:
$im = imagerotate($im, 90, 0);
$degrees = 1;
break;
case 3:
$im = imagerotate($im, 180, 0);
$degrees = 1;
break;
case 6:
$im = imagerotate($im, -90, 0);
$degrees = 1;
break;
}
}
//회전값이 있다면 저장
if ($degrees == 1) {
imagejpeg($im, $file_path, $jpg_quality);
}
imagedestroy($im);
}
/*-----------------------------------------------------------------------------
* 썸네일 이미지
*
-----------------------------------------------------------------------------*/
function ThumbnailImage($image_path, $save_path, $image_quality=100) {
//파일이름 (경로제거)
$file_name = basename($image_path);
//저장위치
$save_image = $save_path.$file_name;
//썸네일 비율
$percent = 0.1;
//이미지 정보
list ($image_width, $image_height, $image_type) = getimagesize($image_path);
//두합이 1000px미만이면
$sum_size = $image_width + $image_height;
if ($sum_size < 1000) {
$new_width = $image_width;
$new_height = $image_height;
}
else {
$new_width = $image_width * $percent;
$new_height = $image_height * $percent;
}
//이미지 생성
$new_image = imagecreatetruecolor($new_width, $new_height);
//$source_image
if (!empty($image_type)) {
switch ($image_type) {
case 1: //gif
$source_image = imagecreatefromgif($image_path);
@imagecopyresampled($new_image, $source_image, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height);
//썸네일 저장
imagegif($new_image, $save_image);
break;
case 2: //jpeg
$source_image = imagecreatefromjpeg($image_path);
@imagecopyresampled($new_image, $source_image, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height);
//썸네일 저장
imagejpeg($new_image, $save_image, $image_quality);
break;
case 3: //png
$source_image = imagecreatefrompng($image_path);
@imagecopyresampled($new_image, $source_image, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height);
//썸네일 저장
imagepng($new_image, $save_image);
break;
case 18: //webp
$source_image = imagecreatefromwebp($image_path);
@imagecopyresampled($new_image, $source_image, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height);
//썸네일 저장
imagewebp($new_image, $save_image);
break;
}
}
imagedestroy($new_image);
}
?>
- 이전글로또 프로그램2023.05.12
- 다음글파일 확장자 구하기2023.01.11
댓글목록
등록된 댓글이 없습니다.