움직이는 gif 파일의 썸네일을 poster로 지정할 수 있을까요?

움직이는 gif 파일의 썸네일을 poster로 지정할 수 있을까요?

QA

움직이는 gif 파일의 썸네일을 poster로 지정할 수 있을까요?

본문

thumbnail.lib.php 파일을 보고 있는데요.

 


// Animated GIF 체크
$is_animated = false;
if($size[2] == 1) {
    $is_animated = is_animated_gif($srcfile);
    if($replace_content = run_replace('thumbnail_is_animated_gif_content', '', $contents, $srcfile, $is_animated, $img_tag, $data_path, $size)){
        $contents = $replace_content;
        continue;
    }
}

 

먼저 움짤인지 체크하고

 


            // 원본 width가 thumb_width보다 작다면
            if($size[0] <= $thumb_width)
                continue;
            // 썸네일 높이
            $thumb_height = round(($thumb_width * $size[1]) / $size[0]);
            $filename = basename($srcfile);
            $filepath = dirname($srcfile);
            // 썸네일 생성
            if(!$is_animated)
                $thumb_file = thumbnail($filename, $filepath, $filepath, $thumb_width, $thumb_height, false);
            else
                $thumb_file = $filename;
            if(!$thumb_file)
                continue;
            if ($width) {
                $thumb_tag = '<img src="'.G5_URL.str_replace($filename, $thumb_file, $data_path).'" alt="'.$alt.'" width="'.$width.'" height="'.$height.'"/>';
            } else {
                $thumb_tag = '<img src="'.G5_URL.str_replace($filename, $thumb_file, $data_path).'" alt="'.$alt.'"/>';
            }
            // $img_tag에 editor 경로가 있으면 원본보기 링크 추가
            if(strpos($img_tag, G5_DATA_DIR.'/'.G5_EDITOR_DIR) && preg_match("/\.({$config['cf_image_extension']})$/i", $filename)) {
                $imgurl = str_replace(G5_URL, "", $src);
                $thumb_tag = '<a href="'.G5_BBS_URL.'/view_image.php?fn='.urlencode($imgurl).'" target="_blank" class="view_image">'.$thumb_tag.'</a>';
            }
            $contents = str_replace($img_tag, $thumb_tag, $contents);
        }
    }
    return run_replace('get_view_thumbnail', $contents);
}

 

위와 같이 썸네일을 생성하는데요.

 

움짤의 경우는 생성하지 않습니다. 그리고 밑에 보면

 


    // Animated GIF는 썸네일 생성하지 않음
    if($size[2] == 1) {
        if(is_animated_gif($source_file))
            return basename($source_file);
    }

 

이렇게 되어 있어서 움짤은 썸네일을 생성하지 않는데요.

 

https://sir.kr/g5_plugin/7476

 

위 링크에 있는 gif 파일을 mp4로 변환 (ffmpeg 필요함) 플러그인에 의해서 

 

"poster_원본움짤파일명" 으로 움직이지 않는 gif 파일이 생성됩니다.

 

그래서 움짤의 경우 해당 파일을 가지고 움짤 전용 움직이지 않는 gif  썸네일로 활용하면 좋을 것 같습니다.


간단하게 생각했을 때

 


    // Animated GIF는 썸네일 생성하지 않음
    if($size[2] == 1) {
        if(is_animated_gif($source_file))
            return basename($source_file);
    }

 

위 내용 자체를 삭제하고

 


// 썸네일 높이
$thumb_height = round(($thumb_width * $size[1]) / $size[0]);
$filename = basename($srcfile);
$filepath = dirname($srcfile);
// 썸네일 생성
if(!$is_animated)
    $thumb_file = thumbnail($filename, $filepath, $filepath, $thumb_width, $thumb_height, false);
else
    $thumb_file = $filename;

 

위 내용을 활용하면 될 것 같은데요.

 


$thumb_file = $filename;

 

위 부분을 
 


$thumb_file = 'poster_'$filename;

 

이렇게 해봤는데 안되더라구요 ㅠㅠ 그냥 경로가 나와서 완전히 안되던데...

 

어떻게 하면 움직이는 gif 파일을 만들어진 poster_~~~~.gif 로 썸네일을 지정할 수 있을까요?

이 질문에 댓글 쓰기 :

답변 4

poster 파일의 위치지정이 안맞을 수도 있네요.

 


$poster_file = $convert_path.'/poster_'.$path_parts['filename'].'.gif';

 

일반 이미지 path와 convert_path가 다르게 되어 있는지 체크해 보세요.

 

그런데 Gif의 썸네일은 어디에 쓰이나요?

그누 기본 설정에 의하면, 움짤 원본 gif 파일이 게시판 리스트의 썸네일 및 최신글 썸네일로 쓰입니다.

즉 gif 움짤의 경우 글 내용에서만 mp4로 출력이 되고, 리스트와 최신글 썸네일은 그냥 gif 움짤 원본 그대로 나오게됩니다.

그러면 mp4로 변환한 의미가 없어집니다.

그냥 게시판 목록에서 이미지 gif 움짤 원본을 다운 받았는데, 굳이 게시글에 있는 mp4를 다운 받아서 볼 이유가 없기 때문입니다.

따라서 poster_움짤원본.gif 가 이미 생성되어 있기 때문에 움짤 전용 썸네일로 쓰면

최신글이나 게시글 목록 썸네일에서 움짤원본gif 파일을 다운받지 않을 수 있는 것입니다.

갤러리 게시판처럼 리스트에서 나오게 할때 쓰는 것 같습니다. 

 

사진게시판 처럼,  리스트나 최신글도 mp4로 출력하는 것이 더 좋을 것 같습니다.

 

https://sir.kr/cm_pix/p2

https://sir.kr/g5_tip/14205

헉.. 이미 포스터 파일로 만드는 방법을 적었는데...

리스트나 최신글에 mp4 파일로 출력하면 제일 좋을 것 같습니다.

이건.. 진짜 어떻게 하는지 모르겠네요 ㅎㅎ

ㅎㅎ 정도로 가는 것이 맞죠. 가장 쉬운 방법은 

 

1. 리스트나 썸네일 이미지 태그에 비디오 태그를 넣어주면 됩니다. 다시 불러주면 되는지, 아니면 이미 만들어진 것이니 태그만 변경해도 되는지는 모르겠지만..

 

2. 리스트나 최신글에서는 전체 길일르 다 보여주는 것 보다는 (트래픽유발.) 처음 몇초만 반복되게 해 주는 것도 좋을 것 같습니다.  

2.1 만들어진 mp4파일을 크기도 줄이고, 앞부분 몇로로 자르는 ffmpeg을 한번더 돌려주는 것이죠.

2.2 video태그 안에 반복 옵션에서 시간지정이 있으면 좋겠죠.

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 25
QA 내용 검색
filter #gif ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT