tsaarni / esp32-micropython-webcam

ESP32-CAM webcam with MicroPython
Apache License 2.0
148 stars 33 forks source link

Cannot get jpeg image from camera buffer #6

Closed sabo20 closed 4 years ago

sabo20 commented 4 years ago

Hi, thank for your great work on camera driver for esp32.

I do not know how to save the image on internal memory.

The code below is working but the image is strange....

import camera import machine import os

led = machine.Pin(4, machine.Pin.OUT) led.on()

camera.init() data = camera.capture() //get picture from camera camera.deinit()

led.off() camera.deinit()

f = open('image.jpeg', 'wb') f.write(data) // save buffer as image f.close()

Here what image.jpeg file is like (the file is 180kb, I only paste a part of it):

b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x01\x00\x00\x00\x00\x00\x00\xff\xdb\x00C\x00\x0c\x08\t\x0b\t\x08\x0c\x0b\n\x0b\x0e\r\x0c\x0e\x12\x1e\x14\x12\x11\x11\x12%\x1a\x1c\x16\x1e,&.-+&)06E;03A4)<R=AGJMNM/:U[TKZELMJ\xff\xdb\x00C\x01\r\x0e\x0e\x12\x10\x12#\x14\x14#J22JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ\xff\xc4\x00\x1f\x00\x00\x01\x05\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\xff\xc4\x00\xb5\x10\x00\x02\x01\x03\x03\x02\x04\x03\x05\x05\x04\x04\x00\x00\x01}\x01\x02\x03\x00\x04\x11\x05\x12!1A\x06\x13Qa\x07"q\x142\x81\x91\xa1\x08#B\xb1\xc1\x15R\xd1\xf0$3br\x82\t\n\x16\x17\x18\x19\x1a%&\'()456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz\x83\x84\x85\x86\x87\x88\x89\x8a\x92\x93\x94\x95\x96\x97\x98\x99\x9a\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xff\xc4\x00\x1f\x01\x00\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\xff\xc4\x00\xb5\x11\x00\x02\x01\x02\x04\x04\x03\x04\x07\x05\x04\x04\x00\x01\x02w\x00\x01\x02\x03\x11\x04\x05!1\x06\x12AQ\x07aq\x13"2\x81\x08\x14B\x91\xa1\xb1\xc1\t#3R\xf0\x15br\xd1\n\x16$4\xe1%\xf1\x17\x18\x19\x1a&\'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x92\x93\x94\x95\x96\x97\x98\x99\x9a\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xff\xc0\x00\x11\x08\x04\xb0\x06@\x03\x01!\x00\x02\x11\x01\x03\x11\x01\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00?\x00\xf4\xdaZ\x0c\x05\xa7P0\xa5\xa0\x02\x92\x840\xa4\xa0\x05\xa2\x80\x16\x92\x80\x12\x92\x80\x03M\xa4\x86\x14S\x01)(\x18\x94\x94\x84\x14S\xb8\tE\x17\x01)h\x18\x1a(\x10\xb4P\x01IHAE2\x82\x9b@\x82\x92\x81\x85\x14\x00QE\xc0J(\x01\xb4P\x02QH\x04\xa2\x9d\xc6%\x14\x80)(\xbb\x01\xb4P\x02RP\x01K@\x0bE41ii\x12-\x14\xc0Z(\x01i)\x08(\xaa\x18\xdam \x1ai(\x18\x86\x9b@\x0c\xa4\xa0bRR\x10\xb4S\x00\xa4\xa9\x18\x94\x94\xc4\xc6\xd2\x1a\x00Jm\x004\xd3M\x006\x9ah\x01))0\x12\x92\x81\x85\x14\x08i\xa6\xd01\xa6\x92\x80\x1bIHB\x1aJ\x060\xd3\x1a\x95\xc40\xd3\r\x002\x92\x93\x01))\x08Ji\xa4\x860\xd2P\x03M0\xd4\x81\x1d3\x1c\xd4\xb1\x0c"\x98\xd4\xd3\x19\x11\xa44\xe5\xe6\x04dTdT&$4\x8f\xca\xa3nG4\xbd\n\x1a8\xa7\xee\xe3\xb5\x17$V\xe3?