움직이는 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);
}
이렇게 되어 있어서 움짤은 썸네일을 생성하지 않는데요.
위 링크에 있는 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의 썸네일은 어디에 쓰이나요?
!-->$thumb_file = $poster_file;
이렇게 바꾸니 되네요 허무하네요 ㅎㅎ
갤러리 게시판처럼 리스트에서 나오게 할때 쓰는 것 같습니다.
사진게시판 처럼, 리스트나 최신글도 mp4로 출력하는 것이 더 좋을 것 같습니다.
ㅎㅎ 정도로 가는 것이 맞죠. 가장 쉬운 방법은
1. 리스트나 썸네일 이미지 태그에 비디오 태그를 넣어주면 됩니다. 다시 불러주면 되는지, 아니면 이미 만들어진 것이니 태그만 변경해도 되는지는 모르겠지만..
2. 리스트나 최신글에서는 전체 길일르 다 보여주는 것 보다는 (트래픽유발.) 처음 몇초만 반복되게 해 주는 것도 좋을 것 같습니다.
2.1 만들어진 mp4파일을 크기도 줄이고, 앞부분 몇로로 자르는 ffmpeg을 한번더 돌려주는 것이죠.
2.2 video태그 안에 반복 옵션에서 시간지정이 있으면 좋겠죠.