void Material::SetTextureImage( size_t index, Image image ) { Internal::Image* imagePtr(0); if( image ) { imagePtr = &GetImplementation( image ); } GetImplementation(*this).SetTextureImage( index, imagePtr ); }
std::shared_ptr<sf::Image> ImageManager::load(const std::string& name) { std::shared_ptr<sf::Image> imagePtr(new sf::Image); if(!imagePtr->LoadFromFile(myPath + name)) throw std::invalid_argument(name + ": couldn't load image"); put(name, imagePtr); return imagePtr; }
imagePtr imageCompareBase::getImageFromIndex(int index) const { const QAction* actionMatch = ::actionFromImageName(leftImageMenu_->actions(), findActionName<imagePtr>(imageNameFromIndex(index))); if (actionMatch) { return actionMatch->data().value<imagePtr>(); } else { return imagePtr(NULL); } }
CL_PixelBuffer* ManagerSprite::frame( const std::string& path ) { ASSERT( !path.empty() && "Путь к фрейму не указан." ); // проверяем кеш auto ftr = mKnownFrame.find( path ); if (ftr != mKnownFrame.end()) { return ftr->second.get(); } // в кеше этого изображения нет, загружаем #ifdef _DEBUG std::cout << " Фрейм '" << path << "' .. "; #endif const int posExtension = path.find_last_of( '.' ); const std::string extension = (posExtension == std::string::npos) ? "" : path.substr( posExtension ); const bool support = (extension == ".png") || (extension == ".jpg") ; if ( !support ) { ASSERT( false && "Этот тип изображения не поддерживается." ); return nullptr; } const auto image = (extension == ".png") ? CL_PNGProvider::load( path ) : (extension == ".jpg") ? CL_JPEGProvider::load( path ) : // #! Метод загрузки ниже не работает для ClanLib-2.3.6 / Windows 7. CL_ImageProviderFactory::load( path ); #ifdef _DEBUG std::cout << " OK" << std::endl; #endif // кешируем std::unique_ptr< CL_PixelBuffer > imagePtr( new CL_PixelBuffer( image.copy() ) ); ftr = mKnownFrame.insert( std::make_pair( path, std::move( imagePtr ) ) ).first; return ftr->second.get(); }
int Material::AddTexture( Image image, const std::string& uniformName, Sampler sampler) { int index( -1 ); if( image ) { Internal::ImagePtr imagePtr(&GetImplementation( image )); Internal::SamplerPtr samplerPtr(0); if( sampler ) { samplerPtr = &GetImplementation( sampler ); } index = GetImplementation(*this).AddTexture( imagePtr, uniformName, samplerPtr ); } else { DALI_LOG_ERROR("Error adding invalid texture %s to material", uniformName.c_str() ); } return index; }
void StatisticsCASARegion::_getStatsFromCalculator( casa::ImageInterface<casa::Float>* image, const casa::Record& region, const std::vector<int>& slice, QList<Carta::Lib::StatInfo>& stats, const QString& regionType ){ //If the region record is empty, there are not stats - just return. int fieldCount = region.nfields(); if ( fieldCount == 0 ){ return; } std::shared_ptr<const casa::ImageInterface<casa::Float> > imagePtr( image->cloneII() ); casa::CoordinateSystem cs = image->coordinates(); casa::Vector<casa::Int> displayAxes = cs.directionAxesNumbers(); casa::Quantum<casa::Double> pix0( 0, "pix"); casa::IPosition shape = image->shape(); int nAxes = shape.nelements(); casa::Vector<casa::Quantum<casa::Double> > blcq( nAxes, pix0); casa::Vector<casa::Quantum<casa::Double> > trcq( nAxes, pix0); for ( int i = 0; i < nAxes; i++ ){ if ( i == displayAxes[0] || i == displayAxes[1]){ trcq[i].setValue( shape[i] ); } else { blcq[i].setValue( slice[i] ); trcq[i].setValue( slice[i] ); } } casa::WCBox box( blcq, trcq, cs, casa::Vector<casa::Int>()); casa::ImageRegion* imgBox = new casa::ImageRegion( box ); std::shared_ptr<casa::SubImage<casa::Float> > boxImage( new casa::SubImage<Float>(*image, *imgBox ) ); ImageStatsCalculator calc( boxImage, ®ion, "", true); calc.setList(False); Record result = calc.calculate(); const casa::String blcKey( "blc"); const casa::String trcKey( "trc"); _insertScalar( result, "npts", Carta::Lib::StatInfo::StatType::FrameCount, stats ); _insertScalar( result, "sum", Carta::Lib::StatInfo::StatType::Sum, stats ); _insertScalar( result, "sumsq", Carta::Lib::StatInfo::StatType::SumSq, stats ); _insertScalar( result, "min", Carta::Lib::StatInfo::StatType::Min, stats ); _insertScalar( result, "max", Carta::Lib::StatInfo::StatType::Max, stats ); _insertScalar( result, "mean", Carta::Lib::StatInfo::StatType::Mean, stats ); _insertScalar( result, "sigma", Carta::Lib::StatInfo::StatType::Sigma, stats ); _insertScalar( result, "rms", Carta::Lib::StatInfo::StatType::RMS, stats ); _insertScalar( result, "flux", Carta::Lib::StatInfo::StatType::FluxDensity, stats ); _insertList( result, blcKey, Carta::Lib::StatInfo::StatType::Blc, stats ); _insertList( result, trcKey, Carta::Lib::StatInfo::StatType::Trc, stats ); _insertList( result, "minpos", Carta::Lib::StatInfo::StatType::MinPos, stats ); _insertList( result, "maxpos", Carta::Lib::StatInfo::StatType::MaxPos, stats ); _insertString( result, "blcf", Carta::Lib::StatInfo::StatType::Blcf, stats ); _insertString( result, "trcf", Carta::Lib::StatInfo::StatType::Trcf, stats ); _insertString( result, "minposf", Carta::Lib::StatInfo::StatType::MinPosf, stats ); _insertString( result, "maxposf", Carta::Lib::StatInfo::StatType::MaxPosf, stats ); //Put in an identifier. if ( result.isDefined( blcKey ) && result.isDefined( trcKey ) ){ casa::Vector<int> blcArray = result.asArrayInt( blcKey ); QString blcVal = _vectorToString( blcArray ); casa::Vector<int> trcArray = result.asArrayInt( trcKey ); QString trcVal = _vectorToString( trcArray ); QString idVal = regionType + ":" + blcVal; if ( blcVal != trcVal ){ idVal = idVal + " x " + trcVal; } Carta::Lib::StatInfo info( Carta::Lib::StatInfo::StatType::Name ); info.setValue( idVal ); info.setImageStat( false ); stats.append( info ); } }