int main(int argc, char** argv) { if (argc != 5 && argc != 6 && argc != 7) { printf("Usage: program SourceJPEG DestJPEG DestWidth DestHeight [bpp] [rotation]\r\n"); return -1; } RawImage_t* myImage; int bpp = 32; int rotation = 0; if (argc > 5) bpp = atoi(argv[5]); if (argc > 6) rotation = atoi(argv[6]); char* lastDot = strrchr(argv[1], '.'); if (lastDot && !strcasecmp(lastDot, ".png")) { FILE* fp = fopen(argv[1], "rb"); myImage = LoadPNG(fp, atoi(argv[3]), atoi(argv[4])); fclose(fp); } else if (lastDot && !strcasecmp(lastDot, ".gif")) { int fp = open(argv[1], O_RDONLY | O_BINARY); myImage = LoadGIF(fp, atoi(argv[3]), atoi(argv[4])); close(fp); } else if (lastDot && (!strcasecmp(lastDot, ".tif") || !strcasecmp(lastDot, ".tiff"))) { int fp = open(argv[1], O_RDONLY | O_BINARY); myImage = LoadTIFF(fp, argv[1], atoi(argv[3]), atoi(argv[4])); close(fp); } else { FILE* fp = fopen(argv[1], "rb"); myImage = LoadJPEG(fp, atoi(argv[3]), atoi(argv[4]), bpp, rotation); fclose(fp); } printf("Finished loading image\r\n");fflush(stdout); if (!myImage) { printf("FAILED loading image\r\n"); return -1; } FILE* fp = fopen(argv[2], "wb"); if (strstr(argv[2], ".png")) { if (SavePNG(myImage, fp)) printf("FAILED saving PNG image\r\n"); } else if (SaveJPEG(myImage, fp)) { printf("FAILED saving JPEG image\r\n"); } fclose(fp); free(myImage->pPlane); free(myImage); return 0; }
/** * Constructor for the GuiImageData class. */ GuiImageData::GuiImageData(const u8 * img, int imgSize) { data = NULL; //AnimGif = NULL; width = 0; height = 0; format = GX_TF_RGBA8; if(img) { if (imgSize < 8) { return; } if (img[0] == 0xFF && img[1] == 0xD8) { // IMAGE_JPEG LoadJpeg(img, imgSize); } else if (img[0] == 0x49 && img[1] == 0x49) { // IMAGE_TIFF_PC LoadTIFF(img, imgSize); } else if (img[0] == 0x4D && img[1] == 0x4D) { // IMAGE_TIFF_MAC LoadTIFF(img, imgSize); } else if (img[0] == 'B' && img[1] == 'M') { // IMAGE_BMP LoadBMP(img, imgSize); } /*else if (img[0] == 'G' && img[1] == 'I' && img[2] == 'F') { // IMAGE_GIF LoadGIF(img, imgSize); }*/ else if (img[0] == 0x89 && img[1] == 'P' && img[2] == 'N' && img[3] == 'G') { // IMAGE_PNG LoadPNG(img, imgSize); } else if ((img[0] == 0xFF && img[1] == 0xFF) || (img[0] == 0xFF && img[1] == 0xFE)) { // IMAGE_GD LoadGD(img, imgSize); } else if (img[0] == 0x67 && img[1] == 0x64 && img[2] == 0x32 && img[3] == 0x00) { // IMAGE_GD2 LoadGD2(img, imgSize); } else if (img[0] == 0x00 && img[1] == 0x20 && img[2] == 0xAF && img[3] == 0x30) { // IMAGE_TPL LoadTPL(img, imgSize); } //!This must be last since it can also intefere with outher formats else if(img[0] == 0x00) { // Try loading TGA image LoadTGA(img, imgSize); } } }