일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 불 자료형
- OpenCV
- 불 연산
- 비교연산
- 10진수
- 종합
- 딥러닝
- Docker
- 코드업
- 출력
- 진수
- 8진수
- 입출력
- 논리연산
- input()
- 산술연산
- 2진수
- 파이썬
- 기초 100제
- 16진수
- face recognition
- 선택실행구조
- codeup
- 문자열
- 아스키코드
- 2차원배열
- bitwise
- 반복실행구조
- 비트단위논리연산
- 기초100제
- Today
- Total
DeepFlowest
[CodeUp]기초100제(python)_1086번 : [종합] 그림 파일 저장용량 계산하기 본문
문제 :
이미지가 컴퓨터에 저장될 때에도 디지털 데이터화 되어 저장된다.
가장 기본적인 방법으로는 그림을 구성하는 한 점(pixel, 픽셀)의 색상을
빨강(r), 초록(g), 파랑(b)의 3가지의 빛의 세기 값으로 따로 변환하여 저장하는 것인데,
예를 들어 r, g, b 각 색에 대해서 8비트(0~255, 256가지 가능)씩을 사용한다고 하면,
한 점의 색상은 3가지 r, g, b의 8비트+8비트+8비트로 총 24비트로 표현해서
총 2^24 가지의 서로 다른 빛의 색깔을 사용할 수 있는 것이다.
그렇게 저장하는 점을 모아 하나의 큰 이미지를 저장할 수 있게 되는데,
1024 * 768 사이즈에 각 점에 대해 24비트로 저장하면 그 이미지를 저장하기 위한
저장 용량을 계산할 수 있다.
이렇게 이미지의 원래(raw) 데이터를 압축하지 않고 그대로 저장하는 대표적인 이미지 파일이
*.bmp 파일이며, 비트로 그림을 구성한다고 하여 비트맵 방식 또는 래스터 방식이라고 한다.
이미지의 가로 해상도 w, 세로 해상도 h, 한 픽셀을 저장하기 위한 비트 b 가 주어질 때,
압축하지 않고 저장하기 위해 필요한 저장 용량을 계산하는 프로그램을 작성해 보자.
예를 들어
일반적인 1024 * 768 사이즈(해상도)의 각점에 대해
24비트(rgb 각각 8비트씩 3개)로 저장하려면 1024 * 768 * 24 bit의 저장 용량이 필요하다.
실제 그런지 확인하고 싶다면, 간단한 그림 편집/수정 프로그램을 통해 확인할 수 있다.
**
8 bit(비트) = 1byte(바이트) // 8bit=1Byte
1024 Byte(210 byte) = 1KB(킬로 바이트) // 1024bit=1KB
1024 KB(210 KB) = 1MB(메가 바이트)
1024 MB(210 MB) = 1GB(기가 바이트)
1024 GB(210 GB) = 1TB(테라 바이트)
답 :
코드 : https://github.com/Yearang-Lee/Algorithm/tree/master/CodeUp
'알고리즘 > 코드업' 카테고리의 다른 글
[CodeUp]기초100제(python)_1088번 : [종합] 3의 배수는 통과? (0) | 2020.04.01 |
---|---|
[CodeUp]기초100제(python)_1087번 : [종합] 여기까지! 이제 그만~ (0) | 2020.04.01 |
[CodeUp]기초100제(python)_1085번 : [종합] 소리 파일 저장용량 계산하기 (0) | 2020.04.01 |
[CodeUp]기초100제(python)_1084번 : [종합] 빛 섞어 색 만들기 (0) | 2020.03.31 |
[CodeUp]기초100제(python)_1083번 : [종합] 3 6 9 게임의 왕이 되자! (0) | 2020.03.31 |