From f871cd690cdedb57c95725da932742784d7fd4b1 Mon Sep 17 00:00:00 2001 From: Eric Date: Thu, 4 Jul 2019 01:17:27 -0700 Subject: [PATCH] First Commit --- Esp32_jpeg/fileTest/fileTest.ino | 33 +++ Esp32_jpeg/final/final.ino | 245 +++++++++++++++++++++ Esp32_jpeg/test/data/00.jpg | Bin 0 -> 2511 bytes Esp32_jpeg/test/data/01.jpg | Bin 0 -> 3568 bytes Esp32_jpeg/test/data/010.jpg | Bin 0 -> 3899 bytes Esp32_jpeg/test/data/011.jpg | Bin 0 -> 3815 bytes Esp32_jpeg/test/data/012.jpg | Bin 0 -> 3932 bytes Esp32_jpeg/test/data/013.jpg | Bin 0 -> 4048 bytes Esp32_jpeg/test/data/014.jpg | Bin 0 -> 4118 bytes Esp32_jpeg/test/data/015.jpg | Bin 0 -> 4258 bytes Esp32_jpeg/test/data/016.jpg | Bin 0 -> 4125 bytes Esp32_jpeg/test/data/017.jpg | Bin 0 -> 4126 bytes Esp32_jpeg/test/data/018.jpg | Bin 0 -> 4028 bytes Esp32_jpeg/test/data/019.jpg | Bin 0 -> 3922 bytes Esp32_jpeg/test/data/02.jpg | Bin 0 -> 3787 bytes Esp32_jpeg/test/data/020.jpg | Bin 0 -> 3842 bytes Esp32_jpeg/test/data/021.jpg | Bin 0 -> 3644 bytes Esp32_jpeg/test/data/022.jpg | Bin 0 -> 3614 bytes Esp32_jpeg/test/data/023.jpg | Bin 0 -> 3549 bytes Esp32_jpeg/test/data/024.jpg | Bin 0 -> 3468 bytes Esp32_jpeg/test/data/025.jpg | Bin 0 -> 3539 bytes Esp32_jpeg/test/data/026.jpg | Bin 0 -> 3585 bytes Esp32_jpeg/test/data/027.jpg | Bin 0 -> 3575 bytes Esp32_jpeg/test/data/028.jpg | Bin 0 -> 3624 bytes Esp32_jpeg/test/data/029.jpg | Bin 0 -> 3856 bytes Esp32_jpeg/test/data/03.jpg | Bin 0 -> 3782 bytes Esp32_jpeg/test/data/030.jpg | Bin 0 -> 4014 bytes Esp32_jpeg/test/data/031.jpg | Bin 0 -> 4051 bytes Esp32_jpeg/test/data/032.jpg | Bin 0 -> 4039 bytes Esp32_jpeg/test/data/033.jpg | Bin 0 -> 4079 bytes Esp32_jpeg/test/data/034.jpg | Bin 0 -> 4123 bytes Esp32_jpeg/test/data/035.jpg | Bin 0 -> 4136 bytes Esp32_jpeg/test/data/036.jpg | Bin 0 -> 4192 bytes Esp32_jpeg/test/data/037.jpg | Bin 0 -> 4205 bytes Esp32_jpeg/test/data/038.jpg | Bin 0 -> 4226 bytes Esp32_jpeg/test/data/039.jpg | Bin 0 -> 4229 bytes Esp32_jpeg/test/data/04.jpg | Bin 0 -> 3710 bytes Esp32_jpeg/test/data/040.jpg | Bin 0 -> 4236 bytes Esp32_jpeg/test/data/041.jpg | Bin 0 -> 4237 bytes Esp32_jpeg/test/data/042.jpg | Bin 0 -> 4235 bytes Esp32_jpeg/test/data/043.jpg | Bin 0 -> 4230 bytes Esp32_jpeg/test/data/044.jpg | Bin 0 -> 4230 bytes Esp32_jpeg/test/data/045.jpg | Bin 0 -> 4234 bytes Esp32_jpeg/test/data/05.jpg | Bin 0 -> 3759 bytes Esp32_jpeg/test/data/06.jpg | Bin 0 -> 3588 bytes Esp32_jpeg/test/data/07.jpg | Bin 0 -> 3267 bytes Esp32_jpeg/test/data/08.jpg | Bin 0 -> 3496 bytes Esp32_jpeg/test/data/09.jpg | Bin 0 -> 3501 bytes Esp32_jpeg/test/test.ino | 366 +++++++++++++++++++++++++++++++ 49 files changed, 644 insertions(+) create mode 100644 Esp32_jpeg/fileTest/fileTest.ino create mode 100644 Esp32_jpeg/final/final.ino create mode 100644 Esp32_jpeg/test/data/00.jpg create mode 100644 Esp32_jpeg/test/data/01.jpg create mode 100644 Esp32_jpeg/test/data/010.jpg create mode 100644 Esp32_jpeg/test/data/011.jpg create mode 100644 Esp32_jpeg/test/data/012.jpg create mode 100644 Esp32_jpeg/test/data/013.jpg create mode 100644 Esp32_jpeg/test/data/014.jpg create mode 100644 Esp32_jpeg/test/data/015.jpg create mode 100644 Esp32_jpeg/test/data/016.jpg create mode 100644 Esp32_jpeg/test/data/017.jpg create mode 100644 Esp32_jpeg/test/data/018.jpg create mode 100644 Esp32_jpeg/test/data/019.jpg create mode 100644 Esp32_jpeg/test/data/02.jpg create mode 100644 Esp32_jpeg/test/data/020.jpg create mode 100644 Esp32_jpeg/test/data/021.jpg create mode 100644 Esp32_jpeg/test/data/022.jpg create mode 100644 Esp32_jpeg/test/data/023.jpg create mode 100644 Esp32_jpeg/test/data/024.jpg create mode 100644 Esp32_jpeg/test/data/025.jpg create mode 100644 Esp32_jpeg/test/data/026.jpg create mode 100644 Esp32_jpeg/test/data/027.jpg create mode 100644 Esp32_jpeg/test/data/028.jpg create mode 100644 Esp32_jpeg/test/data/029.jpg create mode 100644 Esp32_jpeg/test/data/03.jpg create mode 100644 Esp32_jpeg/test/data/030.jpg create mode 100644 Esp32_jpeg/test/data/031.jpg create mode 100644 Esp32_jpeg/test/data/032.jpg create mode 100644 Esp32_jpeg/test/data/033.jpg create mode 100644 Esp32_jpeg/test/data/034.jpg create mode 100644 Esp32_jpeg/test/data/035.jpg create mode 100644 Esp32_jpeg/test/data/036.jpg create mode 100644 Esp32_jpeg/test/data/037.jpg create mode 100644 Esp32_jpeg/test/data/038.jpg create mode 100644 Esp32_jpeg/test/data/039.jpg create mode 100644 Esp32_jpeg/test/data/04.jpg create mode 100644 Esp32_jpeg/test/data/040.jpg create mode 100644 Esp32_jpeg/test/data/041.jpg create mode 100644 Esp32_jpeg/test/data/042.jpg create mode 100644 Esp32_jpeg/test/data/043.jpg create mode 100644 Esp32_jpeg/test/data/044.jpg create mode 100644 Esp32_jpeg/test/data/045.jpg create mode 100644 Esp32_jpeg/test/data/05.jpg create mode 100644 Esp32_jpeg/test/data/06.jpg create mode 100644 Esp32_jpeg/test/data/07.jpg create mode 100644 Esp32_jpeg/test/data/08.jpg create mode 100644 Esp32_jpeg/test/data/09.jpg create mode 100644 Esp32_jpeg/test/test.ino diff --git a/Esp32_jpeg/fileTest/fileTest.ino b/Esp32_jpeg/fileTest/fileTest.ino new file mode 100644 index 0000000..4ffa8cc --- /dev/null +++ b/Esp32_jpeg/fileTest/fileTest.ino @@ -0,0 +1,33 @@ +#include "SPIFFS.h" + +void setup(void) { + Serial.begin(115200); + Serial.println("File Test!"); + + if (!SPIFFS.begin()) { + Serial.println("SPIFFS initialisation failed!"); + while (1) yield(); // Stay here twiddling thumbs waiting + } + Serial.println("\r\nInitialisation done."); + Serial.println("\n----DIR: /:"); + listDir("/"); + +} + + +void loop(void) { + +} + + +void listDir(char * dir){ + + File root = SPIFFS.open(dir); + File file = root.openNextFile(); + while(file){ + + Serial.print("FILE: "); + Serial.println(file.name()); + file = root.openNextFile(); + } +} diff --git a/Esp32_jpeg/final/final.ino b/Esp32_jpeg/final/final.ino new file mode 100644 index 0000000..2bd87f6 --- /dev/null +++ b/Esp32_jpeg/final/final.ino @@ -0,0 +1,245 @@ +#include "SPIFFS.h" + +// JPEG decoder library +#include +#include +#include "Adafruit_GFX.h" +#include "Adafruit_ILI9341.h" + +// For the Adafruit shield, these are the default. +#define TFT_DC 17 +#define TFT_CS 5 +#define TFT_RST 4 + +Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST); + +boolean SPIFFSInited = false; +int imageIndex = 0; + +void setup(void) { + + long unsigned debug_start = millis (); + while (!Serial && ((millis () - debug_start) <= 5000)) ; + + tft.begin(); + tft.setRotation(3); + tft.fillScreen(ILI9341_RED); + + Serial.println("INIT!"); + + if (!SPIFFS.begin()) { + Serial.println("SPIFFS initialisation failed!"); + while (1) yield(); // Stay here twiddling thumbs waiting + } + SPIFFSInited = true; + +} + +void loop(){ + if(SPIFFSInited){ + + if(imageIndex > 45){ + imageIndex = 0; + } + + String fileIndex = "/0"; + if(imageIndex < 10){ + fileIndex += "0" + String(imageIndex); + }else{ + fileIndex += "" + String(imageIndex); + } + + fileIndex += ".jpg"; + Serial.println("fileIndex : " + fileIndex); + drawFSJpeg(fileIndex.c_str(), 0, 0); + + imageIndex++; + } +} + + +/*==================================================================================== + This sketch contains support functions to render the Jpeg images. + + Created by Bodmer 15th Jan 2017 + ==================================================================================*/ + +// Return the minimum of two values a and b +#define minimum(a,b) (((a) < (b)) ? (a) : (b)) + +//==================================================================================== +// This function opens the Filing System Jpeg image file and primes the decoder +//==================================================================================== +void drawFSJpeg(const char *filename, int xpos, int ypos) { + + Serial.println("====================================="); + Serial.print("Drawing file: "); Serial.println(filename); + Serial.println("====================================="); + + // Open the file (the Jpeg decoder library will close it) + fs::File jpgFile = SPIFFS.open( filename, "r"); // File handle reference for SPIFFS + // File jpgFile = SD.open( filename, FILE_READ); // or, file handle reference for SD library + + if ( !jpgFile ) { + Serial.print("ERROR: File \""); Serial.print(filename); Serial.println ("\" not found!"); + return; + } + + // To initialise the decoder and provide the file, we can use one of the three following methods: + //boolean decoded = JpegDec.decodeFsFile(jpgFile); // We can pass the SPIFFS file handle to the decoder, + //boolean decoded = JpegDec.decodeSdFile(jpgFile); // or we can pass the SD file handle to the decoder, + boolean decoded = JpegDec.decodeFsFile(filename); // or we can pass the filename (leading / distinguishes SPIFFS files) + // The filename can be a String or character array + if (decoded) { + // print information about the image to the serial port + jpegInfo(); + + // render the image onto the screen at given coordinates + jpegRender(xpos, ypos); + } + else { + Serial.println("Jpeg file format not supported!"); + } +} + +//==================================================================================== +// Decode and paint onto the TFT screen +//==================================================================================== +void jpegRender(int xpos, int ypos) { + + // retrieve infomration about the image + uint16_t *pImg; + uint16_t mcu_w = JpegDec.MCUWidth; + uint16_t mcu_h = JpegDec.MCUHeight; + uint32_t max_x = JpegDec.width; + uint32_t max_y = JpegDec.height; + + // Jpeg images are draw as a set of image block (tiles) called Minimum Coding Units (MCUs) + // Typically these MCUs are 16x16 pixel blocks + // Determine the width and height of the right and bottom edge image blocks + uint32_t min_w = minimum(mcu_w, max_x % mcu_w); + uint32_t min_h = minimum(mcu_h, max_y % mcu_h); + + // save the current image block size + uint32_t win_w = mcu_w; + uint32_t win_h = mcu_h; + + // record the current time so we can measure how long it takes to draw an image + uint32_t drawTime = millis(); + + // save the coordinate of the right and bottom edges to assist image cropping + // to the screen size + max_x += xpos; + max_y += ypos; + + // read each MCU block until there are no more + while ( JpegDec.read()) { + + // save a pointer to the image block + pImg = JpegDec.pImage; + + // calculate where the image block should be drawn on the screen + int mcu_x = JpegDec.MCUx * mcu_w + xpos; + int mcu_y = JpegDec.MCUy * mcu_h + ypos; + + // check if the image block size needs to be changed for the right edge + if (mcu_x + mcu_w <= max_x) win_w = mcu_w; + else win_w = min_w; + + // check if the image block size needs to be changed for the bottom edge + if (mcu_y + mcu_h <= max_y) win_h = mcu_h; + else win_h = min_h; + + // copy pixels into a contiguous block + if (win_w != mcu_w) + { + for (int h = 1; h < win_h-1; h++) + { + memcpy(pImg + h * win_w, pImg + (h + 1) * mcu_w, win_w << 1); + } + } + + + // draw image MCU block only if it will fit on the screen + if ( ( mcu_x + win_w) <= tft.width() && ( mcu_y + win_h) <= tft.height()) + { + tft.drawRGBBitmap(mcu_x, mcu_y, pImg, win_w, win_h); + } + + // Stop drawing blocks if the bottom of the screen has been reached, + // the abort function will close the file + else if ( ( mcu_y + win_h) >= tft.height()) JpegDec.abort(); + + } + + // calculate how long it took to draw the image + drawTime = millis() - drawTime; + + // print the results to the serial port + Serial.print ("Total render time was : "); Serial.print(drawTime); Serial.println(" ms"); + Serial.println("====================================="); + +} + +//==================================================================================== +// Send time taken to Serial port +//==================================================================================== +void jpegInfo() { + Serial.println(F("===============")); + Serial.println(F("JPEG image info")); + Serial.println(F("===============")); + Serial.print(F( "Width :")); Serial.println(JpegDec.width); + Serial.print(F( "Height :")); Serial.println(JpegDec.height); + Serial.print(F( "Components :")); Serial.println(JpegDec.comps); + Serial.print(F( "MCU / row :")); Serial.println(JpegDec.MCUSPerRow); + Serial.print(F( "MCU / col :")); Serial.println(JpegDec.MCUSPerCol); + Serial.print(F( "Scan type :")); Serial.println(JpegDec.scanType); + Serial.print(F( "MCU width :")); Serial.println(JpegDec.MCUWidth); + Serial.print(F( "MCU height :")); Serial.println(JpegDec.MCUHeight); + Serial.println(F("===============")); +} + +//==================================================================================== +// Open a Jpeg file and dump it to the Serial port as a C array +//==================================================================================== +void createArray(const char *filename) { + + fs::File jpgFile; // File handle reference for SPIFFS + // File jpgFile; // File handle reference For SD library + + if ( !( jpgFile = SPIFFS.open( filename, "r"))) { + Serial.println(F("JPEG file not found")); + return; + } + + uint8_t data; + byte line_len = 0; + Serial.println("// Generated by a JPEGDecoder library example sketch:"); + Serial.println("// https://github.com/Bodmer/JPEGDecoder"); + Serial.println(""); + Serial.println("#if defined(__AVR__)"); + Serial.println(" #include "); + Serial.println("#endif"); + Serial.println(""); + Serial.print("const uint8_t "); + while (*filename != '.') Serial.print(*filename++); + Serial.println("[] PROGMEM = {"); // PROGMEM added for AVR processors, it is ignored by Due + + while ( jpgFile.available()) { + + data = jpgFile.read(); + Serial.print("0x"); if (abs(data) < 16) Serial.print("0"); + Serial.print(data, HEX); Serial.print(",");// Add value and comma + line_len++; + if ( line_len >= 32) { + line_len = 0; + Serial.println(); + } + + } + + Serial.println("};\r\n"); + // jpgFile.seek( 0, SeekEnd); + jpgFile.close(); +} +//==================================================================================== diff --git a/Esp32_jpeg/test/data/00.jpg b/Esp32_jpeg/test/data/00.jpg new file mode 100644 index 0000000000000000000000000000000000000000..83b501030c144e4b7713aaad8301259c4309de3e GIT binary patch literal 2511 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 literal 0 HcmV?d00001 diff --git a/Esp32_jpeg/test/data/013.jpg b/Esp32_jpeg/test/data/013.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c0edc2268654e3a3e73990dc0c0194adbbb86e7a GIT binary patch literal 4048 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 Mm;PTJu-WSSA1=0mOaK4? literal 0 HcmV?d00001 diff --git a/Esp32_jpeg/test/data/017.jpg b/Esp32_jpeg/test/data/017.jpg new file mode 100644 index 0000000000000000000000000000000000000000..74863a9e2187ce86371dccb88dcb2dc4a6327a78 GIT binary patch literal 4126 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 Fe*u`wDj@&> literal 0 HcmV?d00001 diff --git a/Esp32_jpeg/test/data/019.jpg b/Esp32_jpeg/test/data/019.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bcfe146e3dddea5c39e5ae0fac87167714584d50 GIT binary patch literal 3922 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 literal 0 HcmV?d00001 diff --git a/Esp32_jpeg/test/data/021.jpg b/Esp32_jpeg/test/data/021.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fa1e4dfc7acb08195b847b183843d4bbbd43feba GIT binary patch literal 3644 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 literal 0 HcmV?d00001 diff --git a/Esp32_jpeg/test/data/022.jpg b/Esp32_jpeg/test/data/022.jpg new file mode 100644 index 0000000000000000000000000000000000000000..216777d90463f4415cd5487fc9ab2e6f4b07a279 GIT binary patch literal 3614 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 K{!0h8d;STnG&%+V literal 0 HcmV?d00001 diff --git a/Esp32_jpeg/test/data/024.jpg b/Esp32_jpeg/test/data/024.jpg new file mode 100644 index 0000000000000000000000000000000000000000..290e505356e762c86d396b4da591f4bc7da402ca GIT binary patch literal 3468 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 literal 0 HcmV?d00001 diff --git a/Esp32_jpeg/test/data/03.jpg b/Esp32_jpeg/test/data/03.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0802682c502b38a1bba9d84c855abfb80ce7052e GIT binary patch literal 3782 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 literal 0 HcmV?d00001 diff --git a/Esp32_jpeg/test/data/030.jpg b/Esp32_jpeg/test/data/030.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9a5a2edcea51f15f637e9eaeefa9f00d72299507 GIT binary patch literal 4014 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 I02KEB9hn(HO8@`> literal 0 HcmV?d00001 diff --git a/Esp32_jpeg/test/data/031.jpg b/Esp32_jpeg/test/data/031.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4055e9de73088f9e1d87c04503e54b3a9645da4e GIT binary patch literal 4051 zcmeHHX*ApE9*%t}C6-oIb;^vbXrt(Yn6|;pG+`o0DK(-f#;zzuSG7gku@pfDZ4e|> z31X=VT7pR791U*Q3^`>H6OjYj+O8&?>>%bSew5t!B_HFhY_=NcW)kkPgXU~UE zY%gpK+_w=B5S9?$WBtR~O<**bn8bWW$OSH_l?<9JLdn>?7Cagcv%>mH73h z*04BrxaPeP5BA8d%KJoRe`!g<8MHSM7lr^fcoh!;PgJ}z--vPUsMf@lt>4ZEQO3)W zQ^xEWVhde%2)GOAPs2obF55Cn3uBX*gg|U_QkP5FU{)))gXDgm3WY?{BeB*I`9AtVmSwa3 z7h|E1^-p?L?!?AVGlK))4uQ^*Q-Q~)R9s)93I@MFaAtyzYKjZzWWB{uD!xv5je@As z$*)E6uJ-W2Y7&Hr6dfjejtwE8F#9^lD&_jHsjO@}?+4B9qFun@T|mWRC9~sX=#E7y zFJ}dtKeo2>%$t}7Ufg_kddK98sYUbRmNL^>J931pjNFXqihA~RWYvVwaDA(hZA|2> zW$m1lYMhI3x>vpy-E-G@X7S=C_+)hdJ^u=*{fB_{*-DfvFmN8PnO8)jWunwV=W`mI z=X$Gt<05_FuRImI2e!fsmdevz%4@1zJhse8%JI78HnhQd%f zg9F6JRoRKG?KYPRjD4@YT`H|rorcdC(q}BjEu_bxmk$+4m7FzTjmVLMy1D%yn@bNf_BX-?37i99oPWzG|XD45a*A)#awOU=6-Lsn?B-) zKbZ;@))8d%rsq#A&MERFufxJRvo!rc4gS}-ouQ^keGT&THL0_!4x1S;xleyGg|&Nf z7AB%Ht*h!qeK(@t(0Xvi?gwfB`jq9u^gK4w9(RV-7vp%ymu~Bas_Tjm(O9c`wVpZX zb`tOS&7>QQ{A>HP5}3d(a(Ugn?72zeydwJ+cd>1$9Ot10o-(>^%szRW#dWI zXFszKIJH7t;XHZQ(s8c|*IU@=J`NV?&B`vo8*z8e|WF zc&b0rzZZ|k4w=~^-ueLb!_}Sj*)mc1o2B&tnb<4uQz*cVg zSB&YKnk3pFUD7fIvPg(j*n0yvEIOQ2BXYw{pY$td|8YS_3`6s{Sni=)aE8K&qM99@ zo(}d}QS-Q+K9aVwQjRN{49uM=A?p?hy&UM6&2fZ75k}QBivA-ltvVJD%2U}&bnRxp zasTvzRh>nnZu88k^bvMUvzcQpiWu<(rPG383?#*+&!t|p{&3JRI&#EJ#Uur09ioN2 z6^ICHKlfdLK{<2hTG{l`Kx+f@WO_JLz5Y471S^^Gi(gx|7uRUsBpJ%3+k`-&P%wq+ z7o%px7eg(vecD2krx~N7w}Q7P?&(h?@`N^~a+WtAJ*gb-(woj8)V=vk885NmSn;ku zv(RenX@vDgn81+_xWCNs_K*qNu%YUiO=3RmUsXSD|=(!tb{TN}F0v2CsawjAxTxf_|Y z1R?~YbWFifXU>Q1zaH+6XO96}Z}>D}`NK7q6`v+BQMEOW`QJ4UPM%;cAdGhbbjUW> z%DNL7t{DQ$TyljeqJoNgqm(Qcx1a%R^vK200qu&@9d8_k5{Vk``kF?Udd$d%+Bf1g zNYFbFgiCIZ^%@$jgztV>_o>9pZov_!(Ubz%BLDzaC;2|5l20P{U0f<`nH&0^X5 z&wksq&IX7`-YIBQTI&rXb{3WObA!28yVDoFYPJeCQjZ11AJkO6FAuHWU;Tcw7u)2} zdb+0v)8E+n>z!SI_1q<)!TVPlV@XeOS_F6ZB37m+nvIVH0$wJ5M|FaSf?}sBi{{Ge z;hr3r^AvXd*@ob>@gT{UTU&aQ1Piu3ZVQ9gLGQgwi9a*B3mD@py5w)TyW{8ELVe&v z%;}Lr*^mWzNNkO7H9j*xES>#49H8`{y%JZ*5xF2UInIJD!*VM!$mF?Hn*WaY6qi*S ziZjftngmYA&fPcPf8w1oOOfZx1|SS0rr(|;NGluTjil9LY;AM~{H4P02lQ4zH|*Q(Z}p{0J-6jcQ1!4M>oMEC zZO&ZX_efjkCSMgVPPffBP9I3Vn27lIr%(m6kX>BwsY z!}Qtv{v&@g0sgVE)ymEb0i|!8?)*mct#kh|k(5wr_F+Xg*dtqZ2vis8r3*i*k?HX| z^g^Gp)F0{TQN<+IQiw7dyeY)c+jR|OX{o871b!{#^(7cKiPU)Vo@> literal 0 HcmV?d00001 diff --git a/Esp32_jpeg/test/data/032.jpg b/Esp32_jpeg/test/data/032.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a197e43c4fd84c1662dc0dca9b6eb9ecae3a8961 GIT binary patch literal 4039 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 literal 0 HcmV?d00001 diff --git a/Esp32_jpeg/test/data/033.jpg b/Esp32_jpeg/test/data/033.jpg new file mode 100644 index 0000000000000000000000000000000000000000..12e2545898cd4aa8517858394d505baa3eb1debe GIT binary patch literal 4079 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 literal 0 HcmV?d00001 diff --git a/Esp32_jpeg/test/data/035.jpg b/Esp32_jpeg/test/data/035.jpg new file mode 100644 index 0000000000000000000000000000000000000000..15398570fbcb243b61b0cd48cf1dd939d9c2c360 GIT binary patch literal 4136 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 literal 0 HcmV?d00001 diff --git a/Esp32_jpeg/test/data/036.jpg b/Esp32_jpeg/test/data/036.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fcdcdeefa853da402dd966462766c4e077071812 GIT binary patch literal 4192 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 literal 0 HcmV?d00001 diff --git a/Esp32_jpeg/test/data/037.jpg b/Esp32_jpeg/test/data/037.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6921916ada8497739756c9428d6499b12a60f29c GIT binary patch literal 4205 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 literal 0 HcmV?d00001 diff --git a/Esp32_jpeg/test/data/04.jpg b/Esp32_jpeg/test/data/04.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f2ca3cddc05f44d96f7d68edd09101b08b39471f GIT binary patch literal 3710 zcmeHHSyYqP8vVmODMSJB%1}W;MNm)z3JIb}WK59?LKMni6fmL8LqebvB2x;f%An9P zIsje_AqXUtGNi~S`*gyH%By zcY$~9R@cw~YpAI0*}F$$uXL}mLju~#l$BGGCTgfEt4gE)BP727U?pG?bWRoo24uh> zSujY_0qE_>l#`Vz{Vx=^Skb~tF_8hdZbO?-W^UVFZZm;I4uLl>649{QY2_v(fXrc`GfPr_{Ne%^hY7T(P>wiCOrVzIB#>* zpvTou0^HLgH-=9%aTJe4-e$0JO!*dqmU6+jgSl+|+FXn)8`9p;D`q)Y_B_icQ0I8N z8ov*2zCzPK|C%F;_J$hXT$hp$J{T^}Xk6$POMru;mOiT!u9>@udNksGGw|9EoOFMz zq4wKEb+{jWBBXxc{-C}Dh{d2TR-OB7CG5X)b4qS8sgFXi*3g2FAdeRB8b^#rCDDXviLq>22c$czXjMrD=BYZgm{n-;a@n_~aUC<`;o;bmkjgG!G z-IuXM)>PqY`iA4dhAOk>+Z4tUON9~3P(#!%uZ+frZ+QEyFwUKQ$2{i)V zt-BlO4`N>Z(z{R8C=c5Z9w%s}&=jAJ*1uhzEyE2Bh2~MiwaHtjDWmmFuH)JCf==}P z5fxF@o;K_3i3$TQhx{^s>2urq<1}ZwfNC5rtd5;sS>ErXe=RY5UuV)7=>y+)PW2Z6 z_-c;qm#nWEX5|~Ke^%Tp0WJ};wo^OX2%e2>tFt3&-EktDTdXSFz{S~3@0$V>_ddXK8qj`OLq`d}5B><(< zbzkZyzNUcbZkmIb@g1nMCY8ypS2C|;q!9GR2e$(=;V#B|0=sRZd=6uSg7EIs0`>?p z=Uey2(3x5@?|-1mx5C3Z=qnE%=CkAQX%(fSOnBzuJDdZaKeZP#?l;hMNgq+B324z8 zf_X@X)z|VqnZjUw)oC!^Y2jA4c2k62$rsBsU6%l1Zzi|(n;v%-+bz!ArRTu}O|cuY zb&6iJsOt*deiPl-nzFqSC@4h5eF-VZCkzv^2L7pyPO>Z9WF(AQ>5!%f7~QKizY%BDvs20{xvDc5&3osGWl06sMJ}3&T+1;MI#wD~f^j9}ZypkRC)$jyYnpU6uWs1-JF@HFb`>FHPzUYJQ2uC65y0BBA^B*0d}_@QE;-$ zUt*rf5QYuVOdgxd?d8T3kh$@pQ}vw)?d!C{Yk zPiM6pBNJA8>8zCap=|iG%gh>6Yig+}n2Exbg6`@FYN^qv>aKqvt|iQDdCil{w#)c1 z?q@yXZ+-#*o0_U}cGM7Vze)d_wXKOUl`dDtaG}w*=ad8hmXjX~H=_Fc5)lW;C@vcd zd+rX_Pex}9>cOZ6Ur?L|PrhLVZgo8{K9P-rWgEJ=xpmN;@08(j`JAVpDz(BdR2>|F z6*(5&@jL=U^erC=)x%Agop4PNJ|BNJuEl;ss*KVuMc;uaFXoq&_>kt+kMNJpIDD0m z;!^J~lmJd7X5HrUe8DEnApK0+=TgruGyFQ(3@}&^b#vt8(#Rb$rnm7CYNV)M-?kwk zNmN@E)tA{TSD4*B|hoB)Dk zSZ!d9Snk2P@GhMH^<*NfV`XrvHSHBN0c!b%{B>qW*9YCiN( zN}63+wfMZCtH!qXRa>f5*gQH|HVJ|Eo z8KT~n69*SSZwXrDC$!ZkT`|K)XL77{6D{E*<$bNCF5}dRq>g9Hk;w|hD9h<;x5O?9 za449zan7~@t=0P8ju10;!h>pB%3k*Av=5oeIDcypRU!|=MDlFPlE%=pzH7reOZLtS zT5Ws%4-cdGwG{u{WO@L>6}-Aq5fv+r{q7BKwRq)e^zy38$F%(=zUiBo>_qi)3R!^b zOPJA^K)Rc}iei{Q6^e?O_Q%2&H{eM(yo!oNloDZZP4GbC8sUWnw|Or9!Q{SfezV)_ z_jUd^E6o&$h^h?uuVyX@65xPaWwyRfcEcCb(=@Zfn_JEBA04p~A}8Fp_4wZtZ=gL8 z{qfuE`^6-8)I^aLZbR(HP=1zikDva%Q!@UU*8x;_cv5dqKa8FF*P{G!Ha2^HPYCOc z^FPYAzkwsJnEwvB-5B2ZWku8t#!Myd3@$nNga_$Txz8bQ+U}R*rlE`Lg(T!;k(Wta zN-G!sGyO4RaqB9%&=g(R9HEEx5ZbN|q>W;oxN~z4Xk$=ADlgv5?j1)0G$Y+Biw%$! z9Msy~b$Tt8FHV9PIb_(zN8FgfnB+mKoM@4HDZcp|MtFxYN{f$iMI9!&CZfJ#rkVxM zYmzn{hM#fmgI(BT&jxyNUY-X6PJiUUIUx}(QF;;}H_XWAH|xIk=mGGMCEv=rFQseQ kvXESZt$R@gDT9f&tgH%DRa4i{0BY?0W*=yu259?VV~0d$r&3N{X}eHEMOkHg^)Eu&3;-$t z7GzGy$p8VeKp8opjFbh?-PxwR-1biY6N++sl$2%V6?Vd>G`7RC@^Z2Y8hhmS{Fx#n zD<{840jT&LWZy|8khW()+pb@^9?fCQ(pSl2P6cI|6q!y-$4`<_i3I)L_Y%UKVWWQ=@}4n z{qFNOR)HV&e>m5p1YWoy9Rhr_T_OvV0|J}@ZOiP%JO5VrKl@ep{2dP;3CiU$W0t&+ zCx((3yzCd{?9P6gH4zzr-o~`oBEl$oCXR|VW{CvC<-qoAvG!cUpLpV)n{no+r7uR7rsM~Sy<S6h)LY&^w3%Pw%nu^(%EdBa&|+FZRqv; z!%~i{=-I3%cco-9npUCo*SQ#$W;_%y3@$`BhYoN^an@xSs3vaNv7dHajCO!^UOy ziG$TJ#9__yEI%Hd#jaj{)I6pATSL5YdfX6$A6jBmHphihXjOVE4EK3bv={gET1kix zH}+TN!fFAzwZlsiA<@4i`~bEbhB`36hyqfa2gF&dwta!&iJv#TM;vr1!yERMbQHMA zZ&Tl|U*H`yuCJZkN;qOn_h_k@;r(8DbJyEgi*33Ub64G?E0fbqKGZQhZH_Zvrafp|?L{9e zFFoHEmqBKU29-~_i%X%swGrC!ZnVwcZkAB#o{{zO>)xO9rYzxjju%V{fVH60odRxc z6$9pWJrA|UacT#9keYA{`}m)}<9i%1;o`KjCsy+Z3Q`QH z6c&FT2hF1rcp{WNwQ#DqobX}L`&4}WU1IB8#u~mm?8GPiEE8(Mi;ChKagxt;JBt`_ zAlaz*$BFQa5cpll3mX>uU}P5f+F!B-AZzkRvD&AUp>s72?;^jZQhNq!Xu-Qu0RAg$ z{|d)Dz5R*iAzvT`=8A!`ltCSaEIL7C$G9!xd`l2p)Er! z9_vCW_6?e@znXwa8ZrpE95w?r#10wSs1nN`Zuu21 zGtTIH#Jte)-TIf$8}BWbWFXoLfpg&lh|1?Tz{z7qJCmn9b}u}`m!gfuaIpv*vzjwtjV*YQp;C8kzPU_7Cwuj z2%E95H;BGLgLH^~5q8~2TOmLWrRRGpg@l%fkQNhu#r^XW%qUb@2y0}eFM5Cb;zhb0 zQWpwovb{aQCY3zx(>vc~Zjy33xf%0xqI14b?6g``+<<2}wtW6}yC22ZA4BA;SF|8v z3@j+tRe`i_o8AFzJQ(J@9!F)&lo=$ot-D!SA@_^I3yzG_F>f8n0hABK!s_n)BlCow z`TjFQ1AbW_fYAQbjfAQ%G_vxT?h^_pqfT!0SbjgjZP9aD~GMZ9j$#tZAL9KFv z{uqC;of=ydVPC!q=3+HOJqlx z@$xHgFwdtE{c1Wd>v1Lf;fY;_AzwRwUvlT4PSxcS@8_g1RtBp!Yn7Q}ET-D^grlWi zSg1{9O!A-__5H%&LxqiG8j3Q8ohOG>TDjp_td==g+dv@Z*}-sj>-no_AR6@APzney zz8Z1!aCC8VlVk6w^Vz7H`oT6d$g2OLZ*BpSxOH0!s0RurQ5!ik^`IBNh=1^WM&Hif ze!oO7A{%yP-At{64zHhYPifsSoy`r0lZAfOUOh1*c#f5)mwPV=)Ma2;8~1*;gcb+a zY`d>xV0hJtbRxmLpwzOv>X^3E&pCX^01rt>vrRrAsGFs6fC>UvEtO=QD+Nw^dDJ?l z3+~~?sF3C&lB4S*{?Y)Qj{5uis1-Z6l1+9<@kVGdoibg893`Re|LS|b*EP4`b6gSK zFhmMK=&b99yiPFhFkwsPa%3>a*vGApCpuaIBROdY_$1R_U9eH++2L)3@N~gRLYz@-U?H{?th@lWKru{3qK|~ z34MD@E$qssCk_PrLN;x+@Y}Q*1=~r;ISnSElirCmjxh@vImr&>Mbc85%(7CNjBIl07Pn&Xr>@G!k32H=%>!`rgdt4_0h0)`SSbF~vc1tY;b{lKYh!45d&OazWAybORirb+}MaPydhg%bLp?4Mq4t?~ih?VTTXwq(` z9_^MdesJ^pQl;~~>U7j2ip`rQZg~9G(N}ntTELT3AWj{I^zGyzsx5nUxL#jNWct&O zcA`BKAjCPA$W_nq3U(3h|J7qPOQJSy%VS0^)m8d2;drDD67JamBb@krT1z4YtP$!5 zLbrVKsP)m)A}Un(>hKrE$Pu<#kCth_Cc+B`(*4`vYYP9fC*n!`N?;(#NXVl-aS(0_ zl7By9@^M|0Gg}=mf<;(Gu=P2>5kLh1Ajd$HD^WJjhF!Q0{kXa&j}iiObL$!{QfPw} zBAUz)pgu#+w*u8evmTjtq6)D;4G~Z^Ju`Q!7&2NN%P(%I=tw`ii?uRliGSO8Y^h#} z-N>#8Y*hX6wdxiP!xWpoMIrqpJQwa%(VgoF;E}or5!0SJg+%mSI^4X?qqw(Hgi0^X zPL628x06pUlk3qKZ00jnoxiF-ok*yRbw3;yo`b&h@*+d~9>$a}^o)VFc6Bb65I{QZ zE1ogLT9;m^NyP!P1~qUxyzxs{#q8Tu$|!N!l+qT(bYK$6U>qV$C%6v$dbNx~%*%qY z2xmrdjA6Bm!_XG&p+TD808&yot)6dsa)qX7(=WU=_I*?%(*L|;`4u@q$63PXH=L#Q zUnDCkT;$TP?1bN)!mAZWD-MtO*Qoz*CjM4`RtlhW6)_B35l>cw@(^ThB=&88M%%?S zOBB?YYIK`iVlULe)eN_zhGN#LhaC{i{&mSp$~P2HpBdkx16<-bxE~0-v^o@ q<0oVLsMJD1>blVxBJsoFzB<7q0)27v%(-2T!v8P*cMix&2mb~4C#qlo literal 0 HcmV?d00001 diff --git a/Esp32_jpeg/test/data/041.jpg b/Esp32_jpeg/test/data/041.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2f67972dde5994761a5f2fc9d4036b2f9b784912 GIT binary patch literal 4237 zcmeHIcTm&WzE9|gQVfDfQ@Fqd1q{6i+*Qi5OW7Dg=p|l44?<`Xie+^nv}F;27(hW2 zO&~}wQdF7(A1Xu(9jTa~Z z;E@3GN&va-0QuuI`FM{q{Z9z;@(T&`@Ch87uZtgkmTd3gEw1tbJ7 zfzN&?1X6)2AHS%qno`z5+jSaw-j}cLW zW?O^;&TQabmYcgRy(HAK-QQ^?b8EgSF9MButf>qmk#JYHid9*VR@5D+14b85Oq@%3 zVjVCc*i>%*4q|L>n+22BvQO2UUf=p_Yw}y!FndX6d5td1Cep^}QPKGWmDIunL!C*m zJPkhhYQHF`S>osByV%M!Ht7{RO|9K@zpW>8W}<{V}BKz}a@ovA0eThXcdhZi0Fm%c^^d3G#F= z2_B%gH4^f0Rk10n$rVkBNVRm%uTbJ^E1KobKcTwC~XShqn*AY6j_w zzZ`U>A9{TymQ<}CWCoWLEW|jOvir@mjyC=i9ECw|yF|rp1;brTUttEVb<2#>lDBWM zaxH9QyTDAoC}}Bs=hkmSA1f~pxyNS8M>N?DMo_x^XWDHvXB#gdE5@GY;gB)t#EtE+ zwYJoXG=_&&Pk2tE!YeW=Y1rD+i`M8d*%|h-GU3M0?F*j9sZ>?4K~Njx);WWHdx+C6 zG)R4X+nkm?N_^2}wrlAdTw@h(sBGbXFtBo==iwhlrSg$JT6CKYMqi&nuV14EO(WXB z77??lzW$?DZv^Gyf}Chfo_iN!u5*lXsDv|>9K$u0aV*qwJWU(T5wA(9n^sUfyWDwo za@|C#qsQrM=vO73f(FYF{45ev$Ew4KfDgOU5>>BegKl-fr)uYimK`Q08Jg&Z$6vQu zGV6(c^V-1kJ>!?>b{XhIxmhh1f5_F7q~q_g=WywrycGPD@R=uZAr^MZ?;IJw@w}(hDdK=uxo5A1)|??$^~@#QaaKS z755_Pre^(St09nbeEy=oxdr-rw-l1H5rySU^oKdYV5ap-3aa5K=0bP_3WjaQ_J+e4 z=S%&lvw@`ehH*+1%sk0~^Rn9c{#(zXcEomA4<)u*6tWxMZ}832P0@)o%kV%WSzxfe z@NhbD zyz$$Z|K3ThYC2hjz!ZBDjyc7%U9&J;K}H3+PU z&Z0MXgG&32Gm2=pw<-+5Qm;mC!-JC#<%h2-x!Zvp*iT5!YL-^Y z!xiI7S_}z>8QJ3%Dft8j)b8as{-?3&DoEx~Uw*-a>QHQcTcbW9wXb>w65S_wF7FFv zvJ3{Z_<$u51ICqKBz$k;uTCA->pWGaT(au3+z0j4hk{H?j6RhuC$xq7w_TYk&32io zyA3D!w=)lejj*>^?i6E~ycxLFC}pM_Tl}g|!G(T7MDba9?CB`E;R1S#+5~8Dugl{` zuX*utL6{Y(+dq1TqZOs}I^lXg0p(T6y%n zs0_ACP(-m>D4N~HDT>5YbsN-5m+W|E%`JnYoU@XLpUWglli(e#CQofc<7OiAPA6~iDia3@`rOMwh#h0vb?_NZc!uT3|}b zEC@8#IJ4OgYb0Q&)zh;69*)HMuSIW;=X1r7E)6G;4GgAYp`=qXN1vM zj8z&-hm*B)KK%Mt8BvKLy|F~Rl1{=8Fjp0WmK;CUIA%Ky&Qa9&X4WdQ*^0kW)xEUe zdr@$qT)^Yd-J_Rkho!KK)E3zRKijd*#ejZbIdL>t5)NutTUk?KGy-Mr5Eq?!y#q#d zXJ&u5z|LeWdWi{I4^KEPlVWKjI+qh!y24?XZeBtv@$eu~;4O-r+Tf@5J z;$@v_$&*g{kA=b(GG}-f-I7#-&zIl08RpCdoU7KTzQb*6TRwAVk|}uT0v@@7_#kM zpG99llC-&iusX~cMO9=FWh~BgA=Ad&-~c#U7m-?R)f3h6C(%~$BCy0WaIMR1v+(j} zP>4Z-{IyH7y)k7TJH*YL{BZ0^`Tut}^=0%n0)bUu9wWarT|QuAo+)0LxIJ`?nEgJ?dLtC|=paC`NMfRD0 z*?ATAge9rer;ur8mv~mJ-bRj2prT-XBx31DHFPE{=*cwfo&(wRctRLOj zNtgGzU^q~88a?4U)#^-W^Y5pBP>An}W6-ckuCBS~pPkSg-rv_aZfv~Kz_3>1r+_*y z-M@6YcZ?Lz+>tib?MwM)7pBOx>Q-Wb>^3XkxHPUAVZjF5bmOXW;X`7a@=z^N=EK;^ zxKcn$vwdkOZVtqq?p?^p0HpTl{d4ShI`Ck->Zy z^Kgl@_kN{dPVA}XciUt^o5AG=J!9H_@By*^!c_2@#AvjYu<9(DSw1S5Tkq9fUaBxZes{O>vtrzv$b`h9Yt0|FUd3Z~C!ae8?11TFr5>3`~g1$X!#!d9YM literal 0 HcmV?d00001 diff --git a/Esp32_jpeg/test/data/042.jpg b/Esp32_jpeg/test/data/042.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b7a2fa778aab1c345e29eb29f5b2249de61b0614 GIT binary patch literal 4235 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 g^t|F8Ww4v5G86MwzR(f|Me literal 0 HcmV?d00001 diff --git a/Esp32_jpeg/test/data/045.jpg b/Esp32_jpeg/test/data/045.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dbae137366a57760381f44237ce57166b1037840 GIT binary patch literal 4234 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 literal 0 HcmV?d00001 diff --git a/Esp32_jpeg/test/data/05.jpg b/Esp32_jpeg/test/data/05.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8267bf27e887af1dbabdb3dfe7477ab50ee360f6 GIT binary patch literal 3759 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 j!texI049Q4S{4v3Wm{SI9GCsTrCt0i?02KwvP zuhY{rgcz>hU}OX_(l^*>ywS*bH8xr!0j+gvYU!>v8m-e?x0?MAq5cDa=mK)kx0)ab zpaB7CLO|*+z-mpVmgcI`j{vVK)B|bg>Z~5aj6i?}NJB$MQxB{I{<{REp{WJdhUn;S z{L1m*PsUr0>6v_&kXUfz_xgQ5p6`5WYP&b^0=;kR&58!nDuLzdBtYP`aeRc9h9+2B z2c)}t>H_(P9;~OWt@%&E8a)L3mG(x*gMG$M$9_yWUr^s^vc>kN8^4?G{VuVhVVg*< z761mTk~JWj5C8@!a6g}U`;q@Ok*$pnVqY1;&2CMdgRlou0o>=u{grwqmKP~Oo)voG|S zNlCfmApuN?5@M zimsH+O-){F!6C4|*mIw|m<>KDRuk~^ZfJ>3>R-thD`_341gS0kfnJ-5xlYlIM>yMg z46N{06e{D;Jc|LlMCYMsUo!%!lw{vuFwIquX8XOTL*I+Pm>TYh%E&^@|26ylJ7MFG z{ zg@8HeI={1 zo99SYW2|72$F8L_@8Dw%MM0>jzHhG8GBzjkcX<|u;rW$w&lcZ*ZeAd%O(8nW#VvVo zUl}dvrCe6w4%=LJ(%7a~CvtpLFqpXxHe+ArvL$hx*PjlRZDb+U*X)vuw zGQ#r1lWwq`hma z(zPWm?@e-^sP+YHc7TRiWIWiaEa~0e5#W!=3(SLB7Q85S6ga?r?)_n(R<~8qxRViq z$|zl|Cgp)`DL8ijm^G;f#Pw~G9x%8y5ML0Q%Yv`ZC%q`D?ummP9ln`y=HPAs=?{>8h_*17PSZuycL;K7srHTXp5M6siYak3@e^ggnbwQxwI zCwcz0m{NOhz*l)X+A(M zRRhz*e|a3R2$l$a;&l8^q*YQ-Gzh34h4Hen<=}q{70cx?GMAmc$39|Dfj@FDFy!p0Q#=v+2=7#-=iKBSssHfaui#i z6I)}%?-jwj3Ynt#P&IHaNSoj$#6XceFZ}7mF?LF62i|JWvY)Jw)lXOXBZy{fh(zV} z7Gq%a8O;DoWyU*;R(5t;@QZWkUGS9Zm65!RmeHpA>mn!90a5X6jpA47WK6C9V~+~= z@o)w0VQ^u|^d0-e+B8n#m=xOao821k`lkDdA*2{FFtYuntX+Y(JNxH;yMfET7Dq`R z(4jdiGXi@Wj9N*zAIGy8D^m%G+lPG2nN4FWPZo~&p7@-yjUESDLy#j5#7s(DjBvJj zf1v4f(fyIZ;l#U)aFP+V>iMRmz^(Is0Z-u+elzz{GyZ2zf^~lvJheKGH&Pb|&BS6} zQBkg43h}7q?Es2oOs1Xhe$ZV~aO3usD`MI^H(7zoQ)q{id8E+=SdOb8QI;Od$0Jg4 zrsNlW`g>}*qxqDXU|XRc6A1{}xB7N* z)$pM8PD5s$O>kMwT;1))T0*4q73m#p5!vuaLV`CuXvy?_dRoz#J|7R;c^g(EmGcu;lIko<#<%gB8az^w0`^UIg-2xl=>ulyrDX1?8b}RdY25F;xRW3G~U~XumROxA8*ycBF#r!^w^@4C%Sp zWqxJxj@MH5u9?!d?wQ1;`k)Z`#B4`2E_wAE7*5m5CaS)bo!xckh$`1VwGJ%GvZ`k9 zY3f~02}0O}u3)^G+}?<4`E;;n8~Y;DGT~Xf4`+|5>;$H}WQuUAtu8Y50h6E0NIo1J z&U3Gz)E+U0Hf2 z3RmU1qj^he8Gq=MpW<{ z^JNKna*=5lcT$S{^BJKKbFCsa?8@9^SWfYLHfz1I(OqaIb;Po|x)zTpOdZMZ-+U_N zW5#rDd8^D~+4;hLmwjr$wbu_SJXTnrXM^ptsu51`TouJL`SA{(p~WG&gy3oakppE- zgk#oxrPH$Ts`GlVFvVj>->C-GRaJY^<&=>O#!1)Nn}n=d3oLx7vwCU_BYR$Whsq~5 zlfvO!XB&Lb(R+*cr<2nkSN9!N#E*AGvog21*GQ%aD<=wYL%kJ3)h9CB^Es{!HYiy5mYnIVszuQ^DP0=kUhq0#J#O`i;dq>31oDrMu09Pw aECCl1MrQe3N|GCnBhjB${10Z-{C@*UbYf8e literal 0 HcmV?d00001 diff --git a/Esp32_jpeg/test/data/07.jpg b/Esp32_jpeg/test/data/07.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9dd9fef9baa65d3ddaf1b7660113043f03fba7f2 GIT binary patch literal 3267 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 literal 0 HcmV?d00001 diff --git a/Esp32_jpeg/test/test.ino b/Esp32_jpeg/test/test.ino new file mode 100644 index 0000000..2f66910 --- /dev/null +++ b/Esp32_jpeg/test/test.ino @@ -0,0 +1,366 @@ +/*************************************************** + This is our GFX example for the Adafruit ILI9341 Breakout and Shield + ----> http://www.adafruit.com/products/1651 + + Check out the links above for our tutorials and wiring diagrams + These displays use SPI to communicate, 4 or 5 pins are required to + interface (RST is optional) + Adafruit invests time and resources providing this open source code, + please support Adafruit and open-source hardware by purchasing + products from Adafruit! + + Written by Limor Fried/Ladyada for Adafruit Industries. + MIT license, all text above must be included in any redistribution + ****************************************************/ + + +#include "SPI.h" +#include "Adafruit_GFX.h" +#include "Adafruit_ILI9341.h" + +// For the Adafruit shield, these are the default. +#define TFT_DC 17 +#define TFT_CS 5 +#define TFT_RST 4 + +// Use hardware SPI (on Uno, #13, #12, #11) and the above for CS/DC +Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST); +// If using the breakout, change pins as desired +//Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK, TFT_RST, TFT_MISO); + +void setup() { + Serial.begin(115200); + Serial.println("ILI9341 Test!"); + + tft.begin(); + + // read diagnostics (optional but can help debug problems) + uint8_t x = tft.readcommand8(ILI9341_RDMODE); + Serial.print("Display Power Mode: 0x"); Serial.println(x, HEX); + x = tft.readcommand8(ILI9341_RDMADCTL); + Serial.print("MADCTL Mode: 0x"); Serial.println(x, HEX); + x = tft.readcommand8(ILI9341_RDPIXFMT); + Serial.print("Pixel Format: 0x"); Serial.println(x, HEX); + x = tft.readcommand8(ILI9341_RDIMGFMT); + Serial.print("Image Format: 0x"); Serial.println(x, HEX); + x = tft.readcommand8(ILI9341_RDSELFDIAG); + Serial.print("Self Diagnostic: 0x"); Serial.println(x, HEX); + + Serial.println(F("Benchmark Time (microseconds)")); + delay(10); + Serial.print(F("Screen fill ")); + Serial.println(testFillScreen()); + delay(500); + + Serial.print(F("Text ")); + Serial.println(testText()); + delay(3000); + + Serial.print(F("Lines ")); + Serial.println(testLines(ILI9341_CYAN)); + delay(500); + + Serial.print(F("Horiz/Vert Lines ")); + Serial.println(testFastLines(ILI9341_RED, ILI9341_BLUE)); + delay(500); + + Serial.print(F("Rectangles (outline) ")); + Serial.println(testRects(ILI9341_GREEN)); + delay(500); + + Serial.print(F("Rectangles (filled) ")); + Serial.println(testFilledRects(ILI9341_YELLOW, ILI9341_MAGENTA)); + delay(500); + + Serial.print(F("Circles (filled) ")); + Serial.println(testFilledCircles(10, ILI9341_MAGENTA)); + + Serial.print(F("Circles (outline) ")); + Serial.println(testCircles(10, ILI9341_WHITE)); + delay(500); + + Serial.print(F("Triangles (outline) ")); + Serial.println(testTriangles()); + delay(500); + + Serial.print(F("Triangles (filled) ")); + Serial.println(testFilledTriangles()); + delay(500); + + Serial.print(F("Rounded rects (outline) ")); + Serial.println(testRoundRects()); + delay(500); + + Serial.print(F("Rounded rects (filled) ")); + Serial.println(testFilledRoundRects()); + delay(500); + + Serial.println(F("Done!")); + +} + + +void loop(void) { + for(uint8_t rotation=0; rotation<4; rotation++) { + tft.setRotation(rotation); + testText(); + delay(1000); + } +} + +unsigned long testFillScreen() { + unsigned long start = micros(); + tft.fillScreen(ILI9341_BLACK); + yield(); + tft.fillScreen(ILI9341_RED); + yield(); + tft.fillScreen(ILI9341_GREEN); + yield(); + tft.fillScreen(ILI9341_BLUE); + yield(); + tft.fillScreen(ILI9341_BLACK); + yield(); + return micros() - start; +} + +unsigned long testText() { + tft.fillScreen(ILI9341_BLACK); + unsigned long start = micros(); + tft.setCursor(0, 0); + tft.setTextColor(ILI9341_WHITE); tft.setTextSize(1); + tft.println("Hello World!"); + tft.setTextColor(ILI9341_YELLOW); tft.setTextSize(2); + tft.println(1234.56); + tft.setTextColor(ILI9341_RED); tft.setTextSize(3); + tft.println(0xDEADBEEF, HEX); + tft.println(); + tft.setTextColor(ILI9341_GREEN); + tft.setTextSize(5); + tft.println("Groop"); + tft.setTextSize(2); + tft.println("I implore thee,"); + tft.setTextSize(1); + tft.println("my foonting turlingdromes."); + tft.println("And hooptiously drangle me"); + tft.println("with crinkly bindlewurdles,"); + tft.println("Or I will rend thee"); + tft.println("in the gobberwarts"); + tft.println("with my blurglecruncheon,"); + tft.println("see if I don't!"); + return micros() - start; +} + +unsigned long testLines(uint16_t color) { + unsigned long start, t; + int x1, y1, x2, y2, + w = tft.width(), + h = tft.height(); + + tft.fillScreen(ILI9341_BLACK); + yield(); + + x1 = y1 = 0; + y2 = h - 1; + start = micros(); + for(x2=0; x20; i-=6) { + i2 = i / 2; + start = micros(); + tft.fillRect(cx-i2, cy-i2, i, i, color1); + t += micros() - start; + // Outlines are not included in timing results + tft.drawRect(cx-i2, cy-i2, i, i, color2); + yield(); + } + + return t; +} + +unsigned long testFilledCircles(uint8_t radius, uint16_t color) { + unsigned long start; + int x, y, w = tft.width(), h = tft.height(), r2 = radius * 2; + + tft.fillScreen(ILI9341_BLACK); + start = micros(); + for(x=radius; x10; i-=5) { + start = micros(); + tft.fillTriangle(cx, cy - i, cx - i, cy + i, cx + i, cy + i, + tft.color565(0, i*10, i*10)); + t += micros() - start; + tft.drawTriangle(cx, cy - i, cx - i, cy + i, cx + i, cy + i, + tft.color565(i*10, i*10, 0)); + yield(); + } + + return t; +} + +unsigned long testRoundRects() { + unsigned long start; + int w, i, i2, + cx = tft.width() / 2 - 1, + cy = tft.height() / 2 - 1; + + tft.fillScreen(ILI9341_BLACK); + w = min(tft.width(), tft.height()); + start = micros(); + for(i=0; i20; i-=6) { + i2 = i / 2; + tft.fillRoundRect(cx-i2, cy-i2, i, i, i/8, tft.color565(0, i, 0)); + yield(); + } + + return micros() - start; +}