일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 하나이름생각이나지않고
- 광주광역시운암동
- 운암동돈까스맛집
- ദ്ദി( ◠‿◠ )
- 자바파일업로드
- 다시또봐요
- 기본소스코드끌어오기
- 전체파일내키워드찾기
- 스프링부트환경설정
- 양림동티룸
- 달달한하루
- 운암동점심
- 분위기가예뻐요
- 가이아티룸
- 매력이다이다
- 빈생성에러
- 뷰리졸버설정
- 표준프레임워크
- 광주꾸덕꾸덕
- fastapi
- 기세이다
- 광주광역시동구예쁜카페
- CSS
- 담백하답니다
- 소스분석
- 강의리추어탕본점
- 소스코드보는법익히기
- 광주광역시이색카페
- 티파라찌
- 디저트는
- Today
- Total
개발자 구겹이
인코딩 디코딩 바이너리 이미지 본문
Encoding Decoding
컴퓨터와 사람이 소통을 하는데 있어서는 통역자가 필요하다.
사람들 중에서는 그 역할을 수행하는 것이 프로그래머라고 할 수 있지.
고로 저는 통역자가 되기 위한 공부를 합니다.
● 인코딩 : 컴퓨터가 알아먹을 수 있는 날 것으로 변환하는 것
● 디코딩 : 인코딩한 데이터를 다시금 사람들이 알아 볼 수 있는 형태로 변환하는 것
바이너리 데이터로 인코딩하고
아스키코드로 디코딩한다.
바이너리 데이터와 아스키 코드 사이에는 또 매개체'base64'가 필요하다.
디테일한 것들을 아래에 정리해 두자 ○ ' ▽ ' ○
Binary : 0, 1 로 이루어진 데이터
|
V
base64 : 이미지 데이터를 전송하거나 이진 데이터를 텍스트 형식으로 사용할 때 사용한다.우리가 사용하는 프레임워크에서 이미지를 파일의 형태나 바이너리 형태로 전송하는 과정이 매끄럽지 못할 때가 있는데, 그럴 때 base64를 활용한 변환으로 데이터를 자유로이 해볼 수 있다.
[저장] Image File > Binary > with open 'wb'
1 >
pip install pillow
from PIL import Image
import io
with Image.open(이미지있는 경로) as img:
buffer = io.BytesIO()
img.save(buffer, format=img.format)
buffer.getvalue() 로 이미지를 바이너리한 데이터를 겟함
2 >
with open(저장할경로, 'wb') as f:
f.write(바이너리한 데이터)
>> 이미지 열기 (PIL.Image.open) > BytesIO객체 생성 및 이미지 저장(io.BytesIO):메모리에 바이너리 데이터를 저장가능한 버퍼 객체를 생성 후 Image객체를 포맷에 맞춰 저장하는 것> BytesIO 객체에 저장된 바이너리 데이터(buffer.getvalue()) > 바이너리화한 이미지데이터를 저장 (with open .. 'wb' as f : f.write(b''..))
[불러오기] Binary > Image
> >
@app.get("/images/{image_id}") def get_image(image_id: int, db: Session = Depends(get_db)):
image_data = db.query(ImageData).filter(ImageData.id == image_id).first()
if image_data is None:
raise HTTPException(status_code=404, detail="Image not found")
return Response(content=image_data.image, media_type="image/jpeg")
일단 정리된 흐름은 위와 같고, 실제로 적용해보아야겠슴.
개발짜팟팅
'padding' 카테고리의 다른 글
면접준비 꿀팁! (6) | 2024.10.31 |
---|---|
git 나만을 위한 업로드 (0) | 2024.09.23 |