//---------------------------------------------------------------------- const FString FFileDialog::getSelectedFile() const { uLong n = uLong(filebrowser.currentItem() - 1); if ( dir_entries[n].directory ) return FString(""); else return FString(dir_entries[n].name); }
cv::Mat compressData2(const cv::Mat & data) { cv::Mat bytes; if(!data.empty()) { uLong sourceLen = uLong(data.total())*uLong(data.elemSize()); uLong destLen = compressBound(sourceLen); bytes = cv::Mat(1, destLen+3*sizeof(int), CV_8UC1); int errCode = compress( (Bytef *)bytes.data, &destLen, (const Bytef *)data.data, sourceLen); bytes = cv::Mat(bytes, cv::Rect(0,0, destLen+3*sizeof(int), 1)); *((int*)&bytes.data[destLen]) = data.rows; *((int*)&bytes.data[destLen+sizeof(int)]) = data.cols; *((int*)&bytes.data[destLen+2*sizeof(int)]) = data.type(); if(errCode == Z_MEM_ERROR) { UERROR("Z_MEM_ERROR : Insufficient memory."); } else if(errCode == Z_BUF_ERROR) { UERROR("Z_BUF_ERROR : The buffer dest was not large enough to hold the uncompressed data."); } } return bytes; }
std::vector<unsigned char> compressData(const cv::Mat & data) { std::vector<unsigned char> bytes; if(!data.empty()) { uLong sourceLen = uLong(data.total())*uLong(data.elemSize()); uLong destLen = compressBound(sourceLen); bytes.resize(destLen); int errCode = compress( (Bytef *)bytes.data(), &destLen, (const Bytef *)data.data, sourceLen); bytes.resize(destLen+3*sizeof(int)); *((int*)&bytes[destLen]) = data.rows; *((int*)&bytes[destLen+sizeof(int)]) = data.cols; *((int*)&bytes[destLen+2*sizeof(int)]) = data.type(); if(errCode == Z_MEM_ERROR) { UERROR("Z_MEM_ERROR : Insufficient memory."); } else if(errCode == Z_BUF_ERROR) { UERROR("Z_BUF_ERROR : The buffer dest was not large enough to hold the uncompressed data."); } } return bytes; }
cv::Mat uncompressData(const unsigned char * bytes, unsigned long size) { cv::Mat data; if(bytes && size>=3*sizeof(int)) { //last 3 int elements are matrix size and type int height = *((int*)&bytes[size-3*sizeof(int)]); int width = *((int*)&bytes[size-2*sizeof(int)]); int type = *((int*)&bytes[size-1*sizeof(int)]); data = cv::Mat(height, width, type); uLongf totalUncompressed = uLongf(data.total())*uLongf(data.elemSize()); int errCode = uncompress( (Bytef*)data.data, &totalUncompressed, (const Bytef*)bytes, uLong(size)); if(errCode == Z_MEM_ERROR) { UERROR("Z_MEM_ERROR : Insufficient memory."); } else if(errCode == Z_BUF_ERROR) { UERROR("Z_BUF_ERROR : The buffer dest was not large enough to hold the uncompressed data."); } else if(errCode == Z_DATA_ERROR) { UERROR("Z_DATA_ERROR : The compressed data (referenced by source) was corrupted."); } } return data; }
//---------------------------------------------------------------------- void FFileDialog::cb_processClicked (FWidget*, FDataPtr) { const uLong n = uLong(filebrowser.currentItem() - 1); if ( dir_entries[n].directory ) changeDir(dir_entries[n].name); else done (FDialog::Accept); }
bool HandleNameHashCommand(BaseConsole * pConsole, int argc, const char * argv[]) { if( !argc ) return false; string spstring; ConcatArgs(spstring, argc, 0, argv); uint32 spellid = (int)atoi((char*)spstring.c_str()); SpellEntry * sp = dbcSpell.LookupEntryForced(spellid); if ( !sp ) { pConsole->Write( "Spell %u could not be found in spell.dbc\n", spellid ); return true; } else { pConsole->Write( "Name Hash for %u [%s] is 0x%X\n" ,sp->Id, sp->Name , uLong(sp->NameHash)); return true; } }
cv::Mat uncompressData(const unsigned char * bytes, unsigned long size) { cv::Mat data; if(bytes && size>=3*sizeof(int)) { //last 3 int elements are matrix size and type int height = *((int*)&bytes[size-3*sizeof(int)]); int width = *((int*)&bytes[size-2*sizeof(int)]); int type = *((int*)&bytes[size-1*sizeof(int)]); // If the size is higher, it may be a wrong data format. UASSERT_MSG(height>=0 && height<10000 && width>=0 && width<10000, uFormat("size=%d, height=%d width=%d type=%d", size, height, width, type).c_str()); data = cv::Mat(height, width, type); uLongf totalUncompressed = uLongf(data.total())*uLongf(data.elemSize()); int errCode = uncompress( (Bytef*)data.data, &totalUncompressed, (const Bytef*)bytes, uLong(size)); if(errCode == Z_MEM_ERROR) { UERROR("Z_MEM_ERROR : Insufficient memory."); } else if(errCode == Z_BUF_ERROR) { UERROR("Z_BUF_ERROR : The buffer dest was not large enough to hold the uncompressed data."); } else if(errCode == Z_DATA_ERROR) { UERROR("Z_DATA_ERROR : The compressed data (referenced by source) was corrupted."); } } return data; }