Definition at line 240 of file VideoSetWrapper.h. References Impala::Core::Array::Array2dTem< StorT, elemSize, ArithT >::CH(), Impala::Core::Array::Array2dTem< StorT, elemSize, ArithT >::CPB(), Impala::Core::Array::Array2dTem< StorT, elemSize, ArithT >::CW(), ILOG_INFO, Impala::Core::Geometry::NEAREST, Impala::Core::Array::ReadImageFromMemory(), Impala::Core::Array::Scale(), and Impala::Core::Array::WritePngToMemory(). Referenced by Add(). 00241 { 00242 int bufSize = 1000000; 00243 char* buf = new char[bufSize]; 00244 for (int i=0 ; i<imList.size() ; i++) 00245 { 00246 Array::Array2dScalarUInt8* data = imList[i]; 00247 Array::Array2dVec3UInt8* im = 0; 00248 Array::ReadImageFromMemory(im, (char*) data->CPB(), data->CW()); 00249 const int maxWidth = 512; 00250 if (im->CW() > maxWidth) 00251 { 00252 ILOG_INFO("imSize=" << im->CW() << "x" << im->CH() << 00253 ", adjusting"); 00254 double factor = 0.5; 00255 while (factor * im->CW() > maxWidth) 00256 factor *= 0.5; 00257 Array::Array2dVec3UInt8* sc = 0; 00258 Array::Scale(sc, im, factor, factor, Geometry::NEAREST, true); 00259 00260 size_t nrBytes = 0; 00261 Array::WritePngToMemory(sc, buf, bufSize, &nrBytes); 00262 Array::Array2dScalarUInt8* bufIm = 00263 Array::MakeFromData<Array::Array2dScalarUInt8>((UInt8*) buf, 00264 nrBytes, 1); 00265 delete data; 00266 imList[i] = bufIm; 00267 delete sc; 00268 } 00269 delete im; 00270 } 00271 delete buf; 00272 }
Here is the call graph for this function:
|