* 오픈 소스 사용시 장점 *
1. 개발 과정에서 개발 역량 향상 and 보유 스킬 능력 향상
2. In-house(집에서 혼자 개발)하는 것과 달리 수많은 디버깅, 개선을 통해
신뢰성 , 안정성이 높은 어플리케이션 도출이 가능
3. 바로 사용이 가능하다. 아키텍처 호용성과 고품질을 보장함 (클론해와서)
4. 문서 , 개선가능성, 지적재산권 (라이센스) -> 주의해야 함!
gpl버전2, ....
* 오픈 소스(사이드 프로젝트) 참가 장점 *
1. 답변, 기능추가, 사명감(누군가에게 도움이 된다.)
2. 다양한 이슈 해결을 통해 개발 역량 강화
3. 코드퀄리티, 알고리즘, 다양한 지식이 향상된다.
4. 구직시 합격 가능 매우 높다. 창업 시 좋은 팀원 셋업 가능성 향상
5. 이슈 등재를 통해서 문제 해결 가능성이 매우 높다.
(이슈나 stackoverflow에 올려보기)
6. 복잡하고 다양한 기능 배제하고
처음에는 단 몇줄이라도 오픈소스 업로드 추천!!
7. 효율적인 코드 작성 노하우 향상
* 오픈 소스 사용시 장점 *
1. 개발 과정에서 개발 역량 향상 and 보유 스킬 능력 향상
2. In-house(집에서 혼자 개발)하는 것과 달리 수많은 디버깅, 개선을 통해
신뢰성 , 안정성이 높은 어플리케이션 도출이 가능
3. 바로 사용이 가능하다. 아키텍처 호용성과 고품질을 보장함 (클론해와서)
4. 문서 , 개선가능성, 지적재산권 (라이센스) -> 주의해야 함!
gpl버전2, ....
* 오픈 소스(사이드 프로젝트) 참가 장점 *
1. 답변, 기능추가, 사명감(누군가에게 도움이 된다.)
2. 다양한 이슈 해결을 통해 개발 역량 강화
3. 코드퀄리티, 알고리즘, 다양한 지식이 향상된다.
4. 구직시 합격 가능 매우 높다. 창업 시 좋은 팀원 셋업 가능성 향상
5. 이슈 등재를 통해서 문제 해결 가능성이 매우 높다.
(이슈나 stackoverflow에 올려보기)
6. 복잡하고 다양한 기능 배제하고
처음에는 단 몇줄이라도 오픈소스 업로드 추천!!
7. 효율적인 코드 작성 노하우 향상
패키지 만들기 (1)
import glob # 폴더에 잇는 다양한 이미지들을 한 번에 가져와서 리스트 형태로 반환해줌
from PIL import Image
# 이미지, 결과 생성 경로
path_in = '../section4/image/*.jpg' # 확장자 지정해주고 원하는 걸 뽑아올 수 있다
path_out = '../section4/image_out/result.gif'
# 첫 번째 이미지 & 모든 이미지 리스트
# img, *images = [Image.open(f) for f in sorted(glob.glob(path_in))]
# 이미지 크기 통일시키기
img, *images = [Image.open(f).resize((320,240),Image.ANTIALIAS) for f in sorted(glob.glob(path_in))]
# 이미지 저장
img.save(
fp=path_out,
format='GIF',
append_images=images,
save_all=True,
duration=500, # 크기가 클 수록 화면 전환 속도가 느려짐
loop=0
)
> 경로가 하드코딩 된 상태라 다음 장에서 변경 예정
> 사이즈도 동적으로 변경가능하게 바꿀 예정
패키지 만들기(2)
클래스 GifConvert를 이용하여,
path_in, path_out, resize 정보를
동적으로 받아서
사용자가 원하는 사이즈의 이미지를
gif 파일로 저장하는 것!
이미지 경로도 하드코딩하지 않고
저렇게 입력 받으면,
더 편하다!
import glob
from PIL import Image
class GifConverter:
def __init__(self, path_in=None, path_out=None, resize=(320, 240)):
'''
path_in : 원본 여러 이미지 경로 (Ex:images/*.png)
path_out : 결과 이미지 경로 (Ex : output/filename.gif)
resize : 리사이징 크기 (320,240)
'''
self.path_in = path_in or './*.png' # 현재 경로에서 png가 있는 곳에서 실행하기(예외발생 방지)
self.path_out = path_out or './output.gif'
self.resize = resize
def convert_gif(self):
'''
GIF 이미지 변환 기능 수행
'''
img, *images = \
[Image.open(f).resize(self.resize, Image.ANTIALIAS) for f in sorted(glob.glob(self.path_in))]
try:
img.save(
fp=self.path_out,
format='GIF',
append_images=images,
save_all=True,
duration=500, # 크기가 클 수록 화면 전환 속도가 느려짐
loop=0
)
except IOError:
print('Cannot convert', img)
if __name__ == "__main__":
# 클래스
c = GifConverter('../section4/image/*.jpg', '../section4/image_out/result.gif', (320, 240))
# 변환
c.convert_gif()
강의명 : 모두를 위한 파이썬
'여니의 Side Project > 인프런 - 리프 (파이썬 고급)' 카테고리의 다른 글
[인프런 리프 대학생 2기] 한 달간의 여정의 끝, 리프 활동 후기!! (0) | 2021.04.05 |
---|---|
[인프런 리프 대학생 2기] Chapter4. 오픈소스 프로젝트(2) (0) | 2021.04.01 |
[인프런 리프 대학생 2기] 3주차(2) Chapter 3.1 Descriptor (0) | 2021.03.26 |
[인프런 리프 대학생 2기] 3주차(1) | Chapter 3. Meta Class (0) | 2021.03.26 |
[인프런 리프 대학생 2기] 2주차 미션활동 (0) | 2021.03.18 |