PIL 이미지를 바이트 배열로 변환하시겠습니까?
저는 PIL 이미지 형식의 이미지를 가지고 있습니다.바이트 배열로 변환해야 합니다.
img = Image.open(fh, mode='r')
roiImg = img.crop(box)
이제 나는 그것이 필요합니다.roiImg
바이트 배열로 표시됩니다.
여러분의 도움에 감사드립니다.
드디어 해결했습니다!!
import io
from PIL import Image
img = Image.open(fh, mode='r')
roi_img = img.crop(box)
img_byte_arr = io.BytesIO()
roi_img.save(img_byte_arr, format='PNG')
img_byte_arr = img_byte_arr.getvalue()
이렇게 하면 잘라낸 이미지를 하드 디스크에 저장할 필요가 없고 PIL 잘라낸 이미지에서 바이트 배열을 검색할 수 있습니다.
이것이 제 해결책입니다.
from PIL import Image
import io
def image_to_byte_array(image: Image) -> bytes:
# BytesIO is a file-like buffer stored in memory
imgByteArr = io.BytesIO()
# image.save expects a file-like as a argument
image.save(imgByteArr, format=image.format)
# Turn the BytesIO object back into a bytes object
imgByteArr = imgByteArr.getvalue()
return imgByteArr
제 생각에 당신은 간단히 PIL 이미지에 전화할 수 있습니다..tobytes()
방법, 그리고 그것을 배열로 변환하기 위해, 그것을 사용합니다.bytes
붙박이.
#assuming image is a flattened, 3-channel numpy array of e.g. 600 x 600 pixels
bytesarray = bytes(Image.fromarray(array.reshape((600,600,3))).tobytes())
Python 파일 읽기 및 추출 이진 배열
import base64
with open(img_file_name, "rb") as f:
image_binary = f.read()
base64_encode = base64.b64encode(image_binary)
byte_decode = base64_encode.decode('utf8')
언급URL : https://stackoverflow.com/questions/33101935/convert-pil-image-to-byte-array
'programing' 카테고리의 다른 글
아이폰 코어 데이터 "프로덕션" 오류 처리 (0) | 2023.08.18 |
---|---|
PowerShell 경로에서 달러 기호 이스케이프가 작동하지 않음 (0) | 2023.08.18 |
탭을 사용하여 텍스트 영역 들여쓰기 (0) | 2023.08.18 |
$.ajax - dataType (0) | 2023.08.18 |
Ajax 호출 채우기 Typeahead 부트스트랩 (0) | 2023.08.18 |