복붙노트

[REDIS] 파이썬 / PIL을 사용하여 레디 스에 이미지를 저장하는 방법

REDIS

파이썬 / PIL을 사용하여 레디 스에 이미지를 저장하는 방법

나는 파이썬 및 프로세스 이미지에 이미지 모듈 (PIL)를 사용하고 있습니다.

I는 다른 Nginx에 직접 및 httpredis를 사용 레디 스에서 이미지를 읽을 수 있도록 원시 비트 레디 스에 이미지 객체를 스트림 저장할.

그래서, 내 질문은 이미지 개체의 원시 비트를 얻을하고 레디 스에 저장하는 방법입니다.

해결법

  1. ==============================

    1.PIL 1.1.7을 사용하여, PIP 모듈 2.7.2 - 레디 스, 그리고 레디 스-2.4.10 나는이 작업을 얻을 수있었습니다은 :

    PIL 1.1.7을 사용하여, PIP 모듈 2.7.2 - 레디 스, 그리고 레디 스-2.4.10 나는이 작업을 얻을 수있었습니다은 :

    import Image
    import redis
    import StringIO
    
    output = StringIO.StringIO()
    im = Image.open("/home/cwgem/Pictures/portrait.png")
    im.save(output, format=im.format)
    
    r = redis.StrictRedis(host='localhost')
    r.set('imagedata', output.getvalue())
    output.close()
    

    나는이 방법은 문자열을 파일로 보이도록 StringIO를 사용하므로 Image.tostring가 신뢰할 수없는 것으로 나타났습니다. StringIO는 "확장"을 가지고 있지 않기 때문에 형식 = im.format이 필요하다. 나는 다음 이미지 데이터를 수행하여 좋아 저장된 테스트 :

    redis-cli --raw get 'imagedata' >test.png
    

    나는 이미지를 다시 가지고 검증.

  2. ==============================

    2.

    import redis
    r =  redis.StrictRedis()
    img = open("/path/to/img.jpeg","rb").read()
    r.set("bild1",img)
    

    너무 여기에 작품!

  3. from https://stackoverflow.com/questions/15225053/how-to-store-an-image-into-redis-using-python-pil by cc-by-sa and MIT license