스택큐힙리스트

PIL을 사용하여 PNG 이미지를 문자열로 작성하는 방법은 다음과 같습니다. 본문

카테고리 없음

PIL을 사용하여 PNG 이미지를 문자열로 작성하는 방법은 다음과 같습니다.

스택큐힙리스트 2023. 11. 8. 11:56
반응형

나는 PIL을 사용하여 이미지를 생성했습니다. 어떻게 메모리에 문자열로 저장할 수 있을까요?
Image.save() 메소드는 파일을 요구합니다.


나는 이와 같은 이미지들을 사전에 저장하고 싶습니다.

답변 1

문자열을 파일처럼 동작하는 래퍼로 가져오려면 BytesIO 클래스를 사용할 수 있습니다. BytesIO 객체는 파일과 동일한 인터페이스를 제공하지만 내용은 메모리에만 저장됩니다:


import io
with io.BytesIO() as output:
image.save(output, format=GIF)
contents = output.getvalue()

자동으로 감지하려고 할 때 PIL에서 오류가 발생하지 않도록 하려면 format 매개변수로 명시적으로 출력 형식을 지정해야 합니다.


이미지를 파일에서로드한 경우 원래 파일 형식을 포함하는 format 속성이 있으므로 이 경우 format=image.format을 사용할 수 있습니다.

이전 Python 2 버전에서는 io 모듈이 도입되기 전에 StringIO 모듈을 대신 사용해야했습니다.

답변 2

PIL을 사용하여 PNG 이미지를 문자열로 어떻게 작성할까요?
PIL(Python Imaging Library)은 파이썬에서 이미지 처리 작업을 수행하는 데 사용되는 강력하고 유명한 라이브러리입니다. 이 라이브러리를 사용하면 다양한 이미지 파일 형식과 작업할 수 있으며, 여기서는 PNG 이미지를 문자열로 작성하는 방법에 대해 알아보겠습니다.
첫째로, PIL을 설치하고 import 문을 사용하여 모듈을 가져옵니다. 이를 위해 pip를 사용하여 다음 명령을 실행합니다:
```
pip install pillow
```
그런 다음 스크립트 또는 파이썬 인터프리터에서 다음과 같이 PIL 모듈을 가져옵니다:
```python
from PIL import Image
import io
```
다음으로 이미지를 열고 이를 PNG 형식으로 변환합니다. 다음 코드를 사용하여 PNG 이미지를 열고, 변환합니다:
```python
image = Image.open('image.png')
output = io.BytesIO()
image.save(output, format='PNG')
```
위의 코드에서 'image.png'는 작성하려는 이미지 파일의 경로입니다. open() 함수를 사용하여 이미지 파일을 열고, BytesIO() 함수를 사용하여 이진 데이터를 저장할 버퍼를 생성합니다. save() 함수를 사용하여 이미지를 PNG 형식으로 변환한 다음, output 버퍼에 저장합니다.
마지막으로, output 버퍼에서 문자열로 데이터를 추출합니다. 다음과 같은 코드를 사용하여 데이터를 추출할 수 있습니다:
```python
output.seek(0)
image_string = output.read()
```
위의 코드에서, seek() 함수를 사용하여 파일 포인터를 파일의 시작 부분으로 이동시키고, read() 함수를 사용하여 문자열로 데이터를 읽습니다.
PNG 이미지를 문자열로 작성하는 방법에 대해 알아보았습니다. PIL을 사용하면 이미지 파일을 다양한 형식으로 변환하고 처리할 수 있으며, 이를 활용하여 원하는 작업을 수행할 수 있습니다.

반응형
Comments