コード例 #1
0
ファイル: canvasrenderer.cpp プロジェクト: 151706061/Voreen
bool CanvasRenderer::renderToImage(const std::string &filename, tgt::ivec2 dimensions) {
    if (!canvas_) {
        LWARNING("CanvasRenderer::renderToImage(): no canvas assigned");
        renderToImageError_ = "No canvas assigned";
        return false;
    }

    if (!inport_.hasRenderTarget()) {
        LWARNING("CanvasRenderer::renderToImage(): inport has no data");
        renderToImageError_ = "No rendering";
        return false;
    }

    tgt::ivec2 oldDimensions = inport_.getSize();

    // resize texture container to desired image dimensions and propagate change
    if (oldDimensions != dimensions) {
        canvas_->getGLFocus();
        inport_.requestSize(dimensions);
    }

    // render with adjusted viewport size
    bool success = renderToImage(filename);

    // reset texture container dimensions from canvas size
    if (oldDimensions != dimensions) {
        inport_.requestSize(oldDimensions);
    }

    return success;
}
コード例 #2
0
bool Z3DCanvasRenderer::renderToImage(const QString &filename, int width, int height, Z3DScreenShotType sst)
{
  if (!m_canvas) {
    LWARN() << "no canvas assigned";
    m_renderToImageError = "No canvas assigned";
    return false;
  }

  glm::ivec2 oldDimensions = m_inport.getSize();
  // resize texture container to desired image dimensions and propagate change
  m_canvas->getGLFocus();
  m_inport.setExpectedSize(glm::ivec2(width, height));
  m_leftEyeInport.setExpectedSize(glm::ivec2(width, height));
  m_rightEyeInport.setExpectedSize(glm::ivec2(width, height));
  emit requestUpstreamSizeChange(this);

  // render with adjusted viewport size
  bool success = renderToImage(filename, sst);

  // reset texture container dimensions from canvas size
  m_inport.setExpectedSize(oldDimensions);
  m_leftEyeInport.setExpectedSize(oldDimensions);
  m_rightEyeInport.setExpectedSize(oldDimensions);
  emit requestUpstreamSizeChange(this);

  return success;
}
コード例 #3
0
ファイル: epsrenderer.cpp プロジェクト: KDE/cantor
QSizeF EpsRenderer::renderToResource(QTextDocument *document, const QUrl &url)
{
    QSizeF size;
    QImage img = renderToImage(url, &size);

    QUrl internal = url;
    internal.setScheme(QLatin1String("internal"));
    qDebug() << internal;
    document->addResource(QTextDocument::ImageResource, internal, QVariant(img) );
    return size;
}
コード例 #4
0
ファイル: PDF.cpp プロジェクト: jafyvilla/DisplayCluster
void PDF::updateTexture( const QSize& textureSize, const QRectF& pdfRegion )
{
    const QImage image = renderToImage( textureSize, pdfRegion );

    if( image.isNull( ))
    {
        put_flog( LOG_DEBUG, "Could not render pdf to image" );
        return;
    }

    texture_.update( image, GL_BGRA );
    textureRect_ = pdfRegion;
}
コード例 #5
0
ファイル: PaintWidget.cpp プロジェクト: okard/depot
// update the pdf image
void PaintWidget::updatePdfPageImage()
{
    if(pdfDocument_ == nullptr)
        return;

    //TODO calculate right dpi for output size
    auto page = pdfDocument_->page(pdfCurrentPage_);
    auto size = page->pageSize(); //page size in points, 72 dpi == each point one pixel
    auto rect = calcDrawArea(size, outputSize_); //scale up to size
    //extract factor
    float xfactor = 72.0 * ((qreal)rect.width()/(qreal)size.width());
    float yfactor = 72.0 * ((qreal)rect.height()/(qreal)size.height());
    pdfImage_  = page->renderToImage(xfactor, yfactor);
    delete page;
}
コード例 #6
0
ファイル: canvasrenderer.cpp プロジェクト: 151706061/Voreen
void CanvasRenderer::saveScreenshotClicked() {
    if (screenshotFilename_.get().empty()) {
        LWARNING("No screenshot filename set");
        return;
    }

    try {
        renderToImage(screenshotFilename_.get());
        //LINFO("Saved rendering with dimensions " << inport_.getSize() << " to file: " << screenshotFilename_.get());
    }
    catch (VoreenException& e) {
        LERROR("Failed to write screenshot to file '" << screenshotFilename_.get() << "': " << e.what());
    }

}
コード例 #7
0
ファイル: PDF.cpp プロジェクト: jafyvilla/DisplayCluster
void PDF::renderPreview()
{
    if( !texturePreview_.isValid( ))
    {
        const QImage image = renderToImage( PREVIEW_SIZE );
        if( image.isNull( ))
        {
            put_flog( LOG_DEBUG, "Could not render pdf to image" );
            return;
        }
        texturePreview_.update( image, GL_BGRA );
    }

    quad_.setTexture( texturePreview_.getTextureId( ));
    quad_.render();
}
コード例 #8
0
void TestRender::slotPartCompleted()
{
  *logStream << "Finished rendering "+QString(filenames.at(fileno)) << endl;
  renderToImage();
  nextPage();
}