Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 언리얼 엔진4
- 언리얼 AI
- mysql 외부접속
- AWS EC2 ssh
- AWS EC2
- 리눅스 mysql
- error 2002
- 원격
- AWS EC2 ftp
- 아마존 mysql
- generic
- 코루틴
- NetworkStream
- unity
- 연결
- 구글시트
- 스프레드시트
- 우분투 mysql
- 제네릭
- ftp 외부접속
- 소켓통신
- ssh pem
- 유니티 소켓통신
- Read 함수 뻗음
- coroutine
- read
- spreadsheet
- 유니티
- error 1045
- workbench 외부접속
Archives
- Today
- Total
공부한거 잊었을 때 보려고 만든 블로그
파이썬 이미지 압축하기 본문
import cv2
import numpy as np
def opencv_img_save(img, save_img_path, save_img_name):
# img 압축할 이미지
# save_img_path 저장할 파일 경로
# save_img_name 저장할 파일 이름
img = compress_img(img)
cv2.imwrite(save_img_path + save_img_name, img,[int(cv2.IMWRITE_JPEG_QUALITY), jpeg_quality])
def compress_img(img):
# 이미지 최대 사이즈 1MB
MAX_SIZE = 1000000
# JPEG 압축 수준 설정
jpeg_quality = 90
# 압축된 이미지 용량 확인
img_size = MAX_SIZE + 1
last_size = 0
# 압축률을 조절하여 이미지 용량이 1MB 미만이 될 때 까지 반복
while img_size > MAX_SIZE:
img_encode = cv2.imencode('.jpg', img, [int(cv2.IMWRITE_JPEG_QUALITY), jpeg_quality])
img_size = img_encode[1].size
# 더 이상 압축이 안될 때 탈출한다. 10번쯤 반복하여 jpeg_quality가 0이 되면 압축해도 용량이 그대로가 됨
if last_size == img_size:
break
last_size = img_size
jpeg_quality -= 10
# 인코딩 결과를 넘파이 배열로 변환
encimg = np.array(img_encode[1])
# 넘파이 배열을 다시 디코딩하여 이미지로 변환
decimg = cv2.imdecode(encimg, 1)
return decimg
'자유 주제' 카테고리의 다른 글
자바 스프링 기상청 단기예보 (동네날씨) API (1) 날짜와 시간 (0) | 2023.05.02 |
---|---|
집합 커버 문제 Set Cover Problem (0) | 2023.05.01 |
PathVariable, RequestParam, RequestBody 차이 (0) | 2022.12.06 |
mysql 사용자 추가, 사용자 권한 (0) | 2022.12.06 |
라즈베리파이로 포터블 카메라 만들기 (0) | 2022.12.06 |