php

2023.04.21 13:58

이미지 회전반영과 썸네일 생성

  • 관리자 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
  • 댓글목록

    등록된 댓글이 없습니다.