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; }
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; }
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; }
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; }
// 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; }
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()); } }
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(); }
void TestRender::slotPartCompleted() { *logStream << "Finished rendering "+QString(filenames.at(fileno)) << endl; renderToImage(); nextPage(); }