Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BaseJpegDecode BaseUsbHost FATFileSystem mbed-rtos mbed
Homepage
JPEGデコードのサンプルプログラムです。
JPEGのMCU単位で逐次デコード出力していますので少ないRAMメモリで動かすことが出来ます。
#include "USBHostMSD.h"
#include "SimpleJpegDecode.h"
#include "bmp24.h"
const char* INPUT_FILE = "/usb/input.jpg";
const char* OUTPUT_FILE = "/usb/output.bmp";
bmp24 bmp;
RawSerial pc(USBTX, USBRX);
void callbackRGB(int x, int y, uint8_t* rgb) {
bmp.point(x, y, rgb);
pc.printf("x=%d, y=%d, RGB=(0x%02x,0x%02x,0x%02x)\n", x, y, rgb[0], rgb[1], rgb[2]);
}
int main() {
pc.baud(115200);
USBHostMSD* msd = new USBHostMSD("usb");
if (!msd->connect()) {
error("USB Flash drive not found.\n");
}
SimpleJpegDecode* decode = new SimpleJpegDecode(RGB24);
decode->setOnResult(callbackRGB);
decode->clear();
pc.printf("input: %s\n", INPUT_FILE);
FILE* fp = fopen(INPUT_FILE, "rb");
if (fp == NULL) {
error("open error\n");
}
while(1) {
int c = fgetc(fp);
if (c == EOF) {
break;
}
decode->input(c);
}
fclose(fp);
pc.printf("output: %s\n", OUTPUT_FILE);
if (!bmp.writeFile(OUTPUT_FILE)) {
error("write error\n");
}
exit(1);
}