/* Функция: CFSaveImage Цель: Сохраняет изображение в формате jpeg на диске Параметры: [in] hImage - дескриптор изображения [in] path - полное имя файла для записи. Возвращаемые заначения: CF_SUCCESS - в случае упешной записи файла. в противном случае возвращает код ошибки. */ CF_ERROR __EXPORT_TYPE CFSaveImage( CF_IMAGE hImage, char* path ) { CF_ERROR status = CF_SUCCESS; TLFImage* image = (TLFImage*)hImage; if(image == NULL) { status = CFF_INVALID_HANDLE; return status; } if(!image->SaveImage( path )) { status = CFF_CANNOT_SAVE_IMAGE; return status; } return status; }
int _tmain(int argc, _TCHAR* argv[]) { if (argc < 2) { Usage(); return 1; } // main program TiXmlDocument doc; if (!doc.LoadFile(argv[1])) { printf("error: cannot load configuration.\n"); return 1; } TiXmlHandle hDoc(&doc); TiXmlElement* pElem = NULL; pElem = hDoc.FirstChildElement().Element(); if (!pElem) { printf("error: invalid configuration file.\n"); return 1; } const char* name = pElem->Value(); if (strcmp(name, "resize") != 0) { printf("error: invalid configuration file.\n"); return 1; } string path = pElem->Attribute("in_database"); string ext = pElem->Attribute("format"); g_path = pElem->Attribute("out"); pElem->QueryIntAttribute("width", &g_width); pElem->QueryIntAttribute("height", &g_height); printf("params:\n"); printf("input database: %s\n", path.c_str()); printf("output database: %s\n", g_path.c_str()); printf("output images format: %s\n", ext.c_str()); printf("out width %i\n", g_width); printf("out height %i:\n",g_height); if (!LFDirExist(g_path.c_str())) LFCreateDir(g_path.c_str()); _finddata_t filesInfo; int num_images = 0; long handle = 0; if ( (handle = _findfirst( (char*)((path+"*.awp").c_str()), &filesInfo)) != -1 ) { do { string name = path + filesInfo.name; TLFImage image; if (!image.LoadImage((char*)name.c_str())) { printf("cannot load image %s \n", name.c_str()); continue; } num_images++; awpImage* img = image.GetImage(); awpResize(img, g_width, g_height); std::string FileName = g_path; FileName += LFIntToStr(num_images); FileName += ext; image.SaveImage(FileName.c_str()); if (num_images % 100 == 0) printf(">"); }while(!_findnext( handle, &filesInfo )); } _findclose( handle ); printf("\nprocessed %i images\n", num_images); printf("done.\n"); return 0; }