gif 애니메이션 사이즈 용량 줄이기 정보
gif 애니메이션 사이즈 용량 줄이기첨부파일
본문
애니메이션을 리스트에 보여주니 용량이 너무 커서
이미지 사이즈를 줄였더니 애니메이션이 멈추어 버리네요
방법을 찾으려고 팁이나 스킨을 찾아보는데 마땅한 방법이 없어서 하나 만들어 보았습니다
80% 는 정상적으로 되는데 몇몇은 이미지가 깨지네요
깨지는 부분은 포토샵을 이용하거나 https://ezgif.com/split에서 이미지를 따로 줄여서 올렸습니다.
사이즈 줄이는 방법
1. https://github.com/Sybio/ImageWorkshop 에서 다운을 받습니다
2. ImageWorkshop.php 가 들어있는 폴더를 찾으시고 (/src/PHPImageWorkshop/)
PHPImageWorkshop 폴더를 plugin 에 넣습니다
3. 압축파일을 여시면 thumbnail_gif.lib.php 을 lib 폴더에 넣습니다
해당 파일을 여시면
PHPImageWorkshop 파일안에 ImageWorkshop.php 이있는지 확인하시고요
PHPImageWorkshop 경로를 아래와 같이 처리해 주십니다
$file_path = G5_PATH."/plugin/PHPImageWorkshop";
이 있습니다 해당 경로를 맞추어 주시고요.
19라인에
$frame_size=2;
에 원하시는 숫자를 넣어 주시면 됩니다
2이면 2장중 1장을 5이면 5장중 1장을 추출합니다 추출을 많이 할수록
움직임이 부드럽지 않습니다.
4. /lib/thumbnail.lib.php 를 여시고
상단에
include_once G5_PATH."/lib/thumbnail_gif.lib.php";
를 넣습니다.
232라인에
if (file_exists($thumb_file)) {
if ($is_create == false && $source_time < $thumb_time) {
return basename($thumb_file);
}
}
을 아래와 같이 변경해 주십니다
// Animated GIF는 썸네일 생성하지 않음
if($size[2] == 1) {
if(is_animated_gif($source_file)){
//작은내용은 삭제한다
if($size[0] <= $thumb_width){
$thumb_width=$size[0];
}
$ext = array(1 => 'gif', 2 => 'jpg', 3 => 'png');
$thumb_filename = preg_replace("/\.[^\.]+$/i", "", $filename); // 확장자제거
$thumb_file = "$target_path/thumb-{$thumb_filename}_{$thumb_width}x{$thumb_height}.".$ext[$size[2]];
$thumb_time = @filemtime($thumb_file);
$source_time = @filemtime($source_file);
if (file_exists($thumb_file)) {
if ($is_create == false && $source_time < $thumb_time) {
return basename($thumb_file);
}
}
thumbnail_gif($source_file,$thumb_file, $thumb_width, $size[0]);
return basename($thumb_file);
//return basename($source_file);
}
}
압축파일안에
변경된 thumbnail.lib.php 에 넣어 놓았습니다.
도움이 되었으면 좋겠네요. 즐거운 하루되세요
3
댓글 6개
많은 분들이 고민하고 있는 부분인데...
우선 추천 한방 드리고...저도 고민을 해봐야 겠습니다.
혹 적용해놓으신 셈플 사이트 구경이라도 가능할까요?
include_once(G5_PATH."/PHPImageWorkshop/lib/thumbnail_gif.lib.php");