Last active
September 26, 2022 15:04
-
-
Save katsuyoshi/a34b236f747013df3eda61903f2cd00c to your computer and use it in GitHub Desktop.
get image data of Timer Cam X
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include <Arduino.h> | |
| #include "esp_camera.h" | |
| #include "camera_pins.h" | |
| #include "battery.h" | |
| #include "soc/soc.h" | |
| #include "soc/rtc_cntl_reg.h" | |
| #include "bmm8563.h" | |
| #include "base64.hpp" | |
| void setup() { | |
| Serial.begin(115200); | |
| WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); // disable detector | |
| bat_init(); | |
| bat_hold_output(); | |
| bmm8563_init(); | |
| bmm8563_setTimerIRQ(10); | |
| Serial.setDebugOutput(true); | |
| Serial.println(); | |
| pinMode(2, OUTPUT); | |
| digitalWrite(2, HIGH); | |
| camera_config_t config; | |
| config.ledc_channel = LEDC_CHANNEL_0; | |
| config.ledc_timer = LEDC_TIMER_0; | |
| config.pin_d0 = Y2_GPIO_NUM; | |
| config.pin_d1 = Y3_GPIO_NUM; | |
| config.pin_d2 = Y4_GPIO_NUM; | |
| config.pin_d3 = Y5_GPIO_NUM; | |
| config.pin_d4 = Y6_GPIO_NUM; | |
| config.pin_d5 = Y7_GPIO_NUM; | |
| config.pin_d6 = Y8_GPIO_NUM; | |
| config.pin_d7 = Y9_GPIO_NUM; | |
| config.pin_xclk = XCLK_GPIO_NUM; | |
| config.pin_pclk = PCLK_GPIO_NUM; | |
| config.pin_vsync = VSYNC_GPIO_NUM; | |
| config.pin_href = HREF_GPIO_NUM; | |
| config.pin_sscb_sda = SIOD_GPIO_NUM; | |
| config.pin_sscb_scl = SIOC_GPIO_NUM; | |
| config.pin_pwdn = PWDN_GPIO_NUM; | |
| config.pin_reset = RESET_GPIO_NUM; | |
| config.xclk_freq_hz = 20000000; | |
| config.pixel_format = PIXFORMAT_JPEG; | |
| config.frame_size = FRAMESIZE_QVGA; | |
| config.jpeg_quality = 10; | |
| config.fb_count = 2; | |
| // camera init | |
| esp_err_t err = esp_camera_init(&config); | |
| if (err != ESP_OK) { | |
| Serial.printf("Camera init failed with error 0x%x", err); | |
| return; | |
| } | |
| sensor_t *s = esp_camera_sensor_get(); | |
| // initial sensors are flipped vertically and colors are a bit saturated | |
| s->set_vflip(s, 1); // flip it back | |
| s->set_brightness(s, 1); // up the blightness just a bit | |
| s->set_saturation(s, -2); // lower the saturation | |
| } | |
| void loop() { | |
| camera_fb_t *fb = NULL; | |
| fb = esp_camera_fb_get(); | |
| size_t fb_len = 0; | |
| fb_len = fb->len; | |
| size_t blk_size = 60; | |
| unsigned char inp[blk_size]; | |
| unsigned char out[blk_size * 15 / 10]; | |
| Serial.println("require 'base64'"); | |
| Serial.println("s = <<EOS"); | |
| for (int i = 0; i < fb_len; i += blk_size) { | |
| encode_base64(&(fb->buf[i]), min(fb_len - i, blk_size), out); | |
| Serial.printf("%s\n", out); | |
| } | |
| Serial.println("EOS"); | |
| Serial.println("File.write('image.jpg', Base64.decode64(s))"); | |
| Serial.println("system('open image.jpg')"); | |
| esp_camera_fb_return(fb); | |
| // disable bat output, will wake up after 5 sec, Sleep current is 1~2μA | |
| bat_disable_output(); | |
| // if usb not connect, will not in here; | |
| esp_deep_sleep(10000000); | |
| esp_deep_sleep_start(); | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| [env:m5stack-timer-cam] | |
| platform = espressif32 | |
| board = m5stack-timer-cam | |
| framework = arduino | |
| lib_deps = | |
| m5stack/Timer-CAM@^0.0.3 | |
| densaugeo/base64@^1.4.0 | |
| upload_speed = 1500000 | |
| board_build.partitions = huge_app.csv | |
| monitor_speed = 115200 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| require 'base64' | |
| s = <<EOS | |
| /9j/4AAQSkZJRgABAQEAAAAAAAD/2wBDAAoHCAkIBgoJCAkLCwoMDxkQDw4ODx8WFxIZJCAmJiQgIyIo | |
| LToxKCs2KyIjMkQzNjs9QEFAJzBHTEY/Szo/QD7/2wBDAQsLCw8NDx0QEB0+KSMpPj4+Pj4+Pj4+Pj4+ | |
| Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj7/xAAfAAABBQEBAQEBAQAAAAAAAAAA | |
| AQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHB | |
| FVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5 | |
| eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm | |
| 5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAME | |
| BwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkq | |
| NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Sl | |
| pqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/wAARCADwAUAD | |
| ASEAAhEBAxEB/9oADAMBAAIRAxEAPwDT8d3f3IAa4V68jDr3CmUm5kqaOupCLAFW7WPLZqZFCahNxisd | |
| vmNC2JJF6U9aQHS+HNOMsglb7orrtm3gVwV5XkbRE7HNRVkUFKvWgBsjfNxTGJpgJTce9AhpqCebbVID | |
| Mnm61z2r3OTtrqpohmG7UznH1rqMxuDmkA+XrVAP4yKt2/Ws5DNqH/VitaI/u1xWEykP3c08MfWsiiRJ | |
| iKm83nJqLAODg1IDSAWikIxfE919o1aT0XisCU8V2U9IkFVOtWUFbiJ1FaNuNsRNZyGZN6+5zVRasklX | |
| rVm2jLyhRUjPR9Hs/stgoxyasnivLbuzcaelQGgYo6U00CGNSGmA2koAgmk2isyebnNawRJlXE+a5+8k | |
| LTV1xRDKRzmm8461sSBGO9IAOtMB6Y61cg4xUSGbMfEQq/BKNtYSGiwDSZrMoeKcTSAA2DViOWpYEwbN | |
| LUAcncyGSZ3Pc1QuDxXejMZFVpa1AmTrWi/y2tZSGYUvL0zFUySRRXTeGNMa5uN+OBWVV8sS4nd7dpA9 | |
| BVeQc15iNiFvSo60EJ0pvagBjHim9qAE7VHIwCUxGVczday7ifNdMESZV5NtGM81juc966YkkZ+tJj3r | |
| QkXApBgLQBKmOlXosMw4rOQzYVf3QqNXwazGXIbjsasqc9KzaKJKKkBKkWkBdjxUlZAcY5qjMctXoozH | |
| xCrK1YE8I+arl3xBWT3GYjD5qVapklq0i82cLXqOjWK2Vgn96uLFvSxrAtPzzVRuTXIjQhIplaCGU3NA | |
| EZPNFAEbnArPupquJJk3MvWs2WQL1rriSY1zLvkzVXvW8SBPajirAXjrRkZpATw7c9K0LbBbpWTGabcR | |
| 1XqBjgcVPHIRSGW0mzU2eazYxe9WIVzUMC8F2inY+asgOHkqn1evTRmWI6nFUMsW4y9WL/8A1dZdQMfv | |
| TwKpknWeEtNEk4lkHFd4V2qew7V5eJleZvErOc5qo/FQhkbdeKjqwGN1pnagQwtmjPy0wKdzLhetY91N | |
| W1NEmVPLgc1kXFwZM11IkqHn6U3vWxIUlABntilHPagC5Fj0rRtAHbIFYjLU9QVIx1OWgZIpxViKU5qW | |
| BfgHmVoxrtUVzyGStim5qBnCTHiq6CvTiZFtKmApjLFv96pL8/JWfUDLHWrVpCZrhUHemxHqOi2a2lko | |
| x81W5mrxnrI3KslQHkVaAgc/NUbOqZ3HFWIxL3xDaWpIzuNY0vi3n5ErphQuQ5DY/FfPzLWjB4ht5Rzw | |
| acqAcwy4ug43Bqx7u6A71UUBlTzFzVbuRW6JI8cUh6VoITFL3oABmpoevSpYF1do4xWnZR7Ys4rJjI5T | |
| l8UgpDHU4UhhUqc8CgDXtY9qitKP7tc0ygIy2aKgDgJz2pI69RGRaWpBQMs2/Bp1/wDdrPqIzgK6bwnZ | |
| l7sSFcgVFZ2iOJ3hbjioc569a8tGxEzc1G5+SrEUrmVYULv0rg9e8QyXEjR25wldVCHMyJM5p5Cx5NMz | |
| mvRsZi4NHzjoTSAtQ38sXDZIq2kkF3/Ftas3EoZPaSJyo3D1qoeG5pIBuM8UnsKoQnWjGaYEip/dq1GC | |
| vaoYyzGMtjFah/dwVmxFHOTmnigscKWgB9XrSDd81QwNIDAqwnSudlEo460gFSB57Jy9TRivURkTrUop | |
| DLUPAovPuVl1ApwpvcKK9D0G3+zWPTDVhinpYqBpZph54rjNBp44qCY7AWPamI8/8U62ZXNvC3y965Im | |
| vWoxtExYIualrRiClqRhim+WO1FxE8N3cQd9y+9XRcWl3/rR5b1Lj1RVyOawf70R3LVN0KnGKSYBjinq | |
| nFMRNFFxU6hgKgC/YpuwSKdeP2qRlYVItBQ6nUAWIIt7CteFNoArGYy0F45p4rEY4cmjvSA87HLVajr1 | |
| DImFSpy1IovkBIRUN19ysQLvh2wNxdh+y13ajC8VyYl3kXEYTimbuawKGljXKeK9b+zQGCNv3hralHmk | |
| RI88kcsST1pIonlbCgmvW2MWXxpt1tz5TVXkjZDhwQai4KaewynCgodRtqRCU3aDTGSQzTQn5H4q8t5F | |
| OMXEeD61MkMGtFb5oW3CovLKnmoAeMZxU8Ue49aYjVX91b1mO29yagY5afTKH04UAbNlDiPNXkFc0iiT | |
| vS9KzGA9aKBHn0dWkr0jMlFT267nqWMu3yFPKFQzj92KzQjq/C8ASy3dzW4xrgqfEaoi6n2prUhmXreo | |
| pY2bO/3u1eWX1293ctLIc5ruwseplIjs7Zru5Ea966dmtNGiCBA89dU+xx1byfIiBNcuy2RGNv0q8Vt9 | |
| bsHZVCzrWexlKHsveRyjKVcqeoptWdw4V0GnabG2lyXLDe3YU0ROVjHWF5ZCirz6VFLC8TbXGDUlXWxH | |
| RQMljkK/dOKuxXat8sw/GoaKJzbBvnjO4VNaw859Km4BeT7vlFVlpDJFqQCmMXvVu1i3vUsDbgXAqx2r | |
| lZQ73obrUjEHvSDimBwMYqwtegZEgrR0yLfNUz2KE1SVvtuz+7Q3MYpdESdl4fH+gCtCT1rzp/EbEZPG | |
| agup1hiLtxxQhHmHiTVmv7sgH92tYJNezSjaJgzpfCcYMkj9wKrJ/pWrN5nzfNUvc5vtyZtaqbO2sPLg | |
| ZVkqDwsrBppD93FZ9DHX2TbMK7Ia7lI6bqiAyas7lsTrZzFciJ/yqxb391ZKY14HoaEyXaehf00ROGuX | |
| l/e/3a0GtorlfOlXLEcCpbOOcmpGKdLMu94uFz8uaz5reSFtsgwaZ1wqX0IelLn5aZoWLa7e3k46VurM | |
| JoPMi69xWUkWjNOd/NOFAEq0+gY8dcVs6fFhKzmM0o1qRugNcxQ3vxSNwaAEpWoA4OPpUwrvMyUVt6Pi | |
| NTI3aoqbDMm5uhNeO47mrPWIYqmrEnY+HwVsea1P4a82fxGpAemfSuG8Y63/AMu0R5/irahHmkTJnDM1 | |
| Mr2DI3fD16LS6G/7rda1b7R5HmNzp0gw9c70ZyTfJO76lO38P3ckmbg7R6mrepX0GmWJs7Q5kP3jS+Jk | |
| uXtZKKOY8w5rqtBt7JLT7VcspI7U5o2xEmoaEz+J7ZH2xwfJVxUsNctjsULJWVranG6cqXvHJXcL2dy0 | |
| R6rViDU5lQRlvkrQ7nFVFc2ILmCRRtYeWg6GqgjS7aS8uP8AVLwoqTljeJGdG86PzE+Td0Wse4tpbd2D | |
| r92qTOmnV5tCEVrabKUYf3TSkdCLV5FtbcKgFZooeKfTAmgXdIK6G2G1AKxqFIskY5pQcrg1gMaKceRQ | |
| A2mnrQBw61KK7zMlTrWx5iQ6Ywbq3FRIZh/uweK0I/8AVVpIhHX+GpGe0welbJ968up8Rsc34l1ZdOs2 | |
| A++eleWXMzTTM7HJNehhIaXMplc0+JdzgV3Mk0di1agvbi3/ANVKRXKKUFLRiz6leTDDTnFZzRsTknNU | |
| hRpqGw3YaMsBjnFWUNxXVeDYZPtLSfwVFTY58T8DKPipg+sNs7Cqdnpl5d/6qM4o2QQlyU1cuSaFqMKZ | |
| 2Z+lNGoG3iSCaL7h6VO5PMquxq2uoh4DIxG7+FRVTVGEGmES8zzGlYyjG0rHO1etZCI8VUj0Dccb7YZ9 | |
| KoVkjRkgpaYi9py5lFbq8VhUGSZJp4rEoQrikPWgBCKQ9KAOHWpBXcZk8I+cZqxqDpIkcYOMUdQZQ8tc | |
| /erQg/1dVIk6vwtJmNkrR1G7W1tmaRsBea86a981PJNd1N9QvCxPyjpWRXr048sTFiVZtF5zVz2AuUVz | |
| DCigQVZt7C4uT+7jJoFKSjubdn4Yx8944UelXbvU7PTLXyLPBf2qL8x58pPES5VscmJA975txzk5NdNP | |
| 4ht7a1VLFBuqpK5tWoubS6FS28UXAk/fKCtauoWNtrGm/aIQA+Km3LqYTh7CSkjiVaS2n44K024nknk3 | |
| Stk1sego63ITVm1Byo9TSkWdIP8AVY9qzz1rFGjFFPpiNTTcZrYWuee5Q/PNL1rIYFvkpcUAJ25pp96A | |
| OIFSLXcZk8VV5Yyzlt1UhMh8tx3rStPuc0SEdT4ZKIHLGuY8ba79onNrC3yL1rmpw5qpb2OLJpteoZBV | |
| 6AbY6ioNE2aKwGOFbmn+H57pBI52oal6GVWr7NGoLHStNGZ3DMKr3HiSOIbbOEfWptc4lCdd3ZiXerXd | |
| yfnkOPQVRJrQ7oQUNhKke3ljUM6MAaCrjVBJwK7vQYWtdGJm4zUTOTGP3bHDX7hryVl6FqqVqjrjsRse | |
| a19LTeQx6ClPYtGtI2EqlWKLYtPWmI07JttaqOCKwmMmHHWlDVkUPX7hpP0pAL7d6TOTSA4cU8V3mY9h | |
| +7qqVlq4ksTL9607HlKJAJdalLYwv5R6iuPlkLuWY8mqox6iZHRXSIcoyaurwKymNEgBxS1kA4da6LSv | |
| ELW6iKcZSpauY16ftEa1xY2OsR+ZC+JK5nUNIubJjuXcvqKmL6HPQq29yRm96nms54YhJJGQp71Z2uSR | |
| DE2yRSRnFdtp2o2GowrBMgB96iZy4qEviRJPb6Vpr75I8elY2teIfPi8i1+VPWpirmFKEqsuaRyzVG1d | |
| KPSHW8ZdwPWuitojHGERayqFxHTCTHIqCsyhaetMRfhq0klZsZdin3VNnisWhkitxS89agYBsmhuaAOH | |
| p4rvMxsqMfumod8idasgBN61pWRBpSAz9b4jNc3WtLYGFFbCJoRzVkdaymM7HTV05dHzJt3Y5zXOQWrX | |
| V15cA6msDlpyacnI6WDw3bxx5upcGkufDUbR7rOXPtUc5j9bdzC33OnXOMlGFbtr4kRoCl4meKpq5tWo | |
| +0XNEwNyTaluAwheuq8TL/xI02Djik9yavxwOHNSQOySKynmtDrZ3Gpx/afDW+T7wXNcC9RTOXCbNELU | |
| 3qa3Os3tFsSfnI5PSupktRY2vzD52riqy1sbxRg3E2WxVatCWLThQIuRGp88VIyVH2mrcUu4YrOSGWfS | |
| pSaxGJnikU4NAHFU7Ga7jMgPmKaPO/vCtCA3I1aGnj0qZAUde/1Rrmq2o7AwpRWoi1EMLUlYsY8Mema0 | |
| tKv3sZd6AGs2ROPMrCXuo3F3MWdz9KtaPqU9tdoNxKk9KmxEqS5LGx4tt0NtHcgc1yNKGxOFd6Y5Wwc1 | |
| 2mk6hb6jYfZLkjdjHNKZGKi7cyM298LShybYhlqTTPDMomD3PCilz6Gbxa5C14p1GKCx+xwnk8Vwx61d | |
| NaGuEjaAw1btbffIqfnVyOs7rw7HCk3mP9yOovEOoCaU7a4LXqHR0OdJpK6TMWnUCLMUnrVjdUjHDpVi | |
| N6lgXYn4qc9awGK1FIZxVNkV+xrvRkyLzHXqKcHRvvVZIeWvY1p6euFqZbAZWvtxXPVvS2BiU9Blq0Yj | |
| e0rS3v32rwBSanp7WFx5bHNct9SPae/yFMLUiZWg0Fxk1uaDpMtxcrI64jXmpbMq0+WJd8W3iFUtU7da | |
| w7HTLm9P7pOPWktEY0X7Oldm2nhN9vzTDNUL7RbzT/3ifMB3FLnuTHFKTsxlv4ivbcbd2760tx4mvZV2 | |
| httVyIv6rC9zDmleV9ztk1EeK0OpFiwSNtzy9ulaFvH5MZfuaiZUTZivPLsAFPJrMlm8x6xSNCOnVRIt | |
| FAD1NWI5MUAWM5qRTUDLluau9MGsZDF/hpKkZxn41CTIpr0EYsPOHcUuxH6VQhojYNWxZ8Q1EwMDXW5x | |
| WJXRT2Bi1PbrzmnLYRt6XqT2DZSmX13JfXHmSVzEez9/mGwWc8xxHGTW1aeGp5OZzsFJuxFWuoGrHYaX | |
| pwzKwZhVW+8RKsZjskx71FuY5YxlWd5FHSdOl1S682bOzua3NR1S30mHyLUDfQ9XYdX95P2aOZk1u9eT | |
| d5pFdDoGrm+zbXPJpyjoVXoJQujn/E1iLLUTs+6/NYlaR1R1UnzQTG1G5rRGhd0u3Mj7j90Vsyr+7rGp | |
| uXEqK7KNppR1rMY6nUwFpaACnKaBlmJ6sLUgXIKvVjIY40VAzh5Qc/JUYdl+9XomA/5Hpuwj7tMB8Zbd | |
| g1sx/LbVMwOS1iTddVn10Q2EKKtx8ClMZMvWuu8PabaTxb5SC/pXPLQxxE3GOhpX92umJ+6tvxxXO3eu | |
| 3c/Rtg9qiKOahR5veZmvK7n5mJqWytmurlYl71Z2v3UegRWotNPEUZC8dayX0KzuGJNxmQ+9YqR5UKri | |
| 7ow9W0GexHmL88dQaBcJb6mjynArTdHdz+1p6FzxfdxXF1H5TZwK5k1cFoXh1amiMmkiQySADvWpsdJa | |
| xCGEKKSd+1cpoQUUCHd6WgY/tRQAUooAkBq3Ec0gNC2q6Pu1hIoX0oxzUAcJuZKfvVutekYiNGP4aaC0 | |
| dMC1bkSPWjdHZb1nLcDi7x99wxqCutbCJIxk1o2cPmTDKkiokM0b3S/KXzYencVDa3k1o+VJFZSRn8aO | |
| psNagvE8q6AqDUvDyyDzrI/hWPws4k3Qn5HMyxvDIUkXDCup8JWwCvdP2py2OjES/dlLXtalmuGihbCL | |
| WNHdzI+RIc00tCqVJKB2egX/APado0E/JFchrNr9j1GSMdM8VMdGYUFyVHAznfNQ55rdHcMPJrX0q2wP | |
| MalPYaNN22rVMnJrAsSnCgBadQAvel70AJ3p1ACip4T81AGnbP2q/wDw+1c8hko5WjHHWoGcH5vZhRsV | |
| hxXpGIz51p4fPWmBdso/nyKdqsuyE1HUDkGOWJpK6xE8VbFrf+RFhU5rJg1csQXcly4EmSvpVrU4E+yh | |
| wvNLcjZmIrFTkVs6brstrwx3LWTVxVafOijqN59tvDLjFddov/Iuvs64qJHPXVqaRw8rHec1HmtDsOu8 | |
| FxN5jy/w1leK5A2rtj0rNfGckf8AeGc+5pmcCug7Cexi82XFdCuETFY1NyoleR8tTRWZQU4cUCHUtAxK | |
| WgBaWgBakj+9QBdibFacRylYyGWF6U4ishnCFQ9RlGXpXpmI9ZOxp/lhuRQBp2abY6x9cm/hqF8QGCVp | |
| K6xE0RqyhrKQy7a3Rg5WrUWosZsy8iouS4i3kEEqiS3+8f4agubI28Cs5+Y9qdhJlOur8L6giKbeU8Gs | |
| pbGeJjeAuseHGllM1pjDdqoWnhq6kl/ejatTz6GMcSuTU6WWS30XTdoI3Yrz+9nM9w8jfxU6Suwwq3mU | |
| qTljXQdpvafb+TFk9TU0r8Vys0K9O70hDqUUDHUtMBKWkA6jvTAKmjpAXYFrTi+5isZDJf4afnHWswOD | |
| 2EcilWT1r0TIcVDdKdCrb8UwNc/JBXL6gfNmNRDcpFLZil8sNXRcVhjI0Z5qaM5pPURIDUgasgNbSrmK | |
| L/WDNWNTRJYo/LbcztV9DL7Q99IhjtfnPzY61i/PBJ3BqWhxfMbNl4ingXa3Iq1L4qfZ8i81jyHNLCq5 | |
| z19fzXb7pWrOY5raB1xjyqwz2q9p1vvk3HoKc9ikbJ4FVnOTXMaDafQIWlpgOooGLSigBKcKAJBETVqO | |
| I+lSBoRxbRxU8eehrFjJvu03PNQBw+8rxSjD16JkGCpq9ZLufJoYFi9J8vC1zjA+Yd1TEuI/ys1E0OOl | |
| WpFCpydrVYbSmMXmW/P+zS5uUloo8g4btS7qogerYq5bXJWZWY9KQM3Gv4rhdn97rU6QR4Teu4tVnPsZ | |
| N3pUvnSGEfIKyGGDzUs2jK5E5qGqRRJChZgPWt+3jEUQFZVGVESVqhrEocKeKBCilpjAUUAOpe1ACVNG | |
| vNIDQhTjmrITpWbGWF54qTHSsgFelakBwow/Wgpt6V6BkPR+xrWs0wuaJbAWreMSSc9Kr6jpSyfOvBrD | |
| mtIswduxtpp+M1qWRPD3FT2t00LYNG4F2e2t7+PcPll9awrm1kt32yD8acJdDNohHFOVq1JJUkw1bttq | |
| 3CJSRE43NV5Av70uNgWuOuH3zO3qabJplRjzSLyao1NbToON7VoMcCuaW5oisfmpRUiFp3agAp3amAop | |
| M0hi0UgHDrV62WhgXlX0qVaxYyaP7lLzUgOJo3UgOG+lKGI613GRNEgdxWsPkixSYF6zXEdQateC3tjz | |
| 81c+8jQ4trsmbNXYZQ1dc4WCLLI5pjQ56VkaD4hLCavgx3MeyZc0ibGRfaY0OXi+ZKzCOa3g7mTFDVKr | |
| 81TQixJcyPHtLHFU3NICHqavWlv5jD0pz0BG0i7VqCR8muY0GU8UCFooAWloAWl7UDCikBNEvNadqgxU | |
| sCYcGpf4qzGSxjFOzjioAc1I2OtAjhAcU/O6u0zLdkvz1oHlwKTA0d4ihya43WbwzzsB0qaCvItmXtqS | |
| N9prvepmmaEE+eta1kA7VwyVjpjqa32VWSqctrs6VkpGziRhivBqld6bHPl4vletE7HPJGJPaywNiRai | |
| 711XuZD93FMA3GgRctLB5WyeFrZSERrgVjOVy0gkOF4qpWYx4p1Ahe1FABRQMWlpAFOApgXrdKvxLxWc | |
| gJQtSACsxgOM0/NSA5uaTOaBHCUorsINKxq5ER53NJgVdb1DbHsWuWJLHNbYeISG5pa6SBynBrW0672v | |
| zXPWVzWmzp7acOtWCA4rgZ3Ipz23pVJlZDWiZnJDSyuMSDNV5NNtZeQNv0q07HO0Rf2PB/eapY7KCLoK | |
| pzbJsWAce1RNJ6VIxOoqt3oEOpwoAWigBaSkMWloAKmiTJoA0oFq5GPlrOQx9SY5rMBhPNLnigQKfWjP | |
| zUAf/9k= | |
| EOS | |
| File.write('image.jpg', Base64.decode64(s)) | |
| system('open image.jpg') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment