티스토리 뷰
NPDF을 이용하여 PDF에서 이미지 추출하기
시험 공부 도중,,
PDF 파일을 한 장씩 캡쳐해 한글 파일에 첨부하고 밑에 그에 대한 설명을 쓰는 식으로 정리해 보고 싶다는 생각이 들었다
(공부 못하는 사람 특징 : 이상한 것에 집착함)
이런식으로 전체 다 정리하고싶었다.
상상만해도 간지가 난다..
하지만 강의 자료 pdf 파일은 기본 40장이 넘는다.
그 PDF파일을 한 장 한 장 캡쳐해서 한글파일에 붙여넣으면.. 아마 시험이 끝나있을 것이다.
그러다가 좋은 프로그램을 발견했다!
PDF파일을 한 장씩 이미지 파일로 변환해주는 프로그램이다.
이름은 NPDF
https://software.naver.com/software/summary.nhn?softwareId=GWS_000158
요기서 아주 쉽게 다운로드 할 수 있다.
아 근데 난 분명 다운로드 할 때 별 다른거 체크 안했는데 무료 운세보기 궁합보기? 이런 쓸데없는 바로가기가 두개인가 바탕화면에 설치되어있었다. 조금 기분 나빴다.. 하지만 참았다.
그리고 32비트 컴퓨터에서만 지원 가능한 프로그램이라고 알림창이 뜨는데 안되면 어쩔수 없지 뭐 라는 생각으로 그냥 설치했는데 놀랍게도 64비트인 내 컴퓨터에서도 잘 실행이 된다!
여러모로 찜찜한 프로그램
설치후에 프로그램이 두 개정도 생기는 거 같던데, nPDF 유틸 도구 라는 프로그램만 필요하다.
이것이랍니당!~~~
실행 후 PDF 파일을 이미지로 변환을 클릭한다.
파일을 선택한 후, 원하는 페이지의 범위를 설정하고 저장하면 된다. 아주 쉽고 간단하다!
그럼 이렇게 사진 파일로 쫘르르르 저장이 된다.
파일별로 폴더를 만들어 저장하는 것이 좋을 것 같다.
여기까지 순탄했다.
하지만 문제가 생김
파일이 너무 크당!!!
1560*1080 픽셀을 한글 파일에 첨부하면 보나마나 너무 커서 사진이 막 튀어나갈것이 뻔하다.
그래서 사진 크기를 PIL을 이용하여 일괄적으로 변경해 보기로 하였다.
사진 이름은 NPDF서 이미지 추출할 때 간단한 파일명으로 저장하는 기능이 있다.
이렇게 파일 저장 시 %d라고만 저장하면 파일명이 1.png, 2.png.. 이런식으로 예쁘게 저장된다.
괜히 glob사용해서 헛고생 안해도 된다는 뜻이당.
아 그리고 NPDF으로 변환할 때 변환 다 끝나면 뾰로로옹~! 소리가 크게 난다 진짜 깜짝 놀랐다 방금
헤헤 이렇게 파일 명을 숫차적으로 저장했다 역시 이게 더 깔끔하당
(공부 못하는 애들 특징 : 이상한 거에 강박증있음)
Python PIL을 이용하여 사진 크기 변경 및 확인
그럼 이제 파일 크기를 일괄적으로 변경해보자.
물논 윈도우상에 사진 크기 변경는 프로그램 오조억개지만 그냥 파이썬으로 해보고싶다 흥
해당 사진이 있는 폴더에서 jupyter notebook 을 연다.
Python PIL을 이용하여 사진 크기 확인
우선, 사진 크기를 확인해보겠다.
(주의할 점은 해당 폴더에 존재하지 않는 사진을 넣으면 오류가 뜬다. 철자에도 주의해야한다. 확장자 철자도)
1 2 3 4 | from PIL import Image photo = Image.open('1.png') print(photo.size) | cs |
해당 코드를 입력한 후 실행하면,
요렇게 결과가 뜬다.
아까 윈도우 상 폴더에서 확인한 바와 차이가 없다.
Python PIL을 이용하여 사진 크기 변경하기
고렇다면 이제 사진 크기를 변경해보겠다.
하나만 우선 변경해봐야지.
1 2 3 4 5 6 7 | from PIL import Image photo = Image.open('1.png') size=(780,540) photo.thumbnail(size) photo.save('1.png') |
대충 사진 크기를 절반정도로 리사이즈하고, 다른 파일로 저장하는게 귀찮아 같은 이름을 사용하여 덮어쓰기 해버렸다. 결과는 성공!
Python PIL을 이용하여 수십 장의 사진 크기 일괄적으로 변경하기
그럼 이제 수십장의 사진의 크기를 일괄적으로 변경해보자.
코드를 조금만 수정하면 된다.
1 2 3 4 5 6 7 8 9 | from PIL import Image for imgnum in range(1,43): photo = Image.open(str(imgnum)+'.png') size=(780,540) photo.thumbnail(size) photo.save(str(imgnum)+'.png') imgnum = imgnum + 1 | cs |
imgnum라는 변수가 필요하다.
파일을 저장할 때 1.png, 2.png 이런식으로 저장했기 때문에 파일 이름을 나타내는 변수를 선언하고
1씩 증가 시키면 된다.
range함수를 통해 범위를 지정해주고(1.png, 2.png, ......., 42.png, 43.png라는 뜻이다.)
이미지 파일을 오픈할 때 str(imgnum)+'.png' 요렇게 불러온다. 반드시 imgnum 변수를 str 타입으로 바꿔야 한다. 앞서 사용한 코드를 for문으로 감싸주고, 마지막에 imgnum 변수를 1씩 증가시켜주면 끝 확인 결과 43장의 사진 전부 크기가 예쁘게 변경되어 있었다. 다만 실행하는데에 시간이 조오금 걸린다. 끝
- Total
- Today
- Yesterday
- 케이쉴드주니어 지필평가
- 케이쉴드 후기
- opencv 얼굴 인식
- 윈도우 dlib
- 케이쉴드 면접
- dlib 오류
- 파이썬 dlib 설치
- 디지털포렌식실습
- Network Forensics puzzle
- it대외활동
- forensicscontest..com
- it동아리
- 디지털포렌식연습
- 케이쉴드주니어
- 케이쉴드 지필평가
- 패킷분석
- opencv 얼굴 크롭
- 케이쉴드
- networkminer
- 보안관련대외활동
- cmaker
- forensicscontest
- opencv 눈 인식
- K-Shield.JR
- 케이쉴드주니어 면접
- python dlib
- window dlib
- 보안사고분석대응
- dlib 설치 오류
- k-shield
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |