void GocadSGridReader::parseDims(std::string const& line) { std::size_t x_dim(0), y_dim(0), z_dim(0); boost::tokenizer<> tok(line); auto it(tok.begin()); it++; // overread token "AXIS" it++; // overread "N" std::stringstream ssx(*(it), std::stringstream::in | std::stringstream::out); ssx >> x_dim; it++; std::stringstream ssy(*it, std::stringstream::in | std::stringstream::out); ssy >> y_dim; it++; std::stringstream ssz(*it, std::stringstream::in | std::stringstream::out); ssz >> z_dim; _index_calculator = Gocad::IndexCalculator(x_dim, y_dim, z_dim); DBUG("x_dim = %d, y_dim = %d, z_dim = %d => #nodes = %d, #cells = %d", x_dim, y_dim, z_dim, _index_calculator._n_nodes, _index_calculator._n_cells); }
QString KFileTools::scaleImageAndSave(QString path, qreal maxArea) { QImageReader reader(path); if(!reader.canRead()) return path; auto sz = reader.size(); int64_t originArea = (int64_t)sz.width()*sz.height(); float scale = float(maxArea/originArea); if(scale >= 1){ if(getFileExtension(path).toLower() != ".jpg"){ path = QKit::instance()->runTimeCachePath() + "/" + QKit::instance()->randString(8) + ".jpg"; reader.read().save(path, "JPG", 90); } return path; } qDebug() << "##### originArea:" << originArea << " maxArea:" << maxArea << " scale:" << scale ; scale = sqrtf(scale); qDebug() << "scale:" << scale; int sw = int(sz.width()*scale); int sh = int(sz.height()*scale); QSize ssz(sw, sh); qDebug() << "sw:" << sw <<" sh:" << sh << " rt:" << ssz; reader.setScaledSize(ssz); QImage img = reader.read(); if(img.isNull()) return path; //path = QKit::instance()->runTimeCachePath() + "/" + QKit::instance()->randString(8) + getFileExtension(path); //img.save(path); path = QKit::instance()->runTimeCachePath() + "/" + QKit::instance()->randString(8) + ".jpg"; img.save(path, "JPG", 90); return path; }