void GraphicColumnWidget::slotExportToJpg() {
    QString fn = QFileDialog::getSaveFileName(this,
            tr("Export Profile To JPG..."),
            QDir::currentPath(),
            tr("JPG Files (*.jpg *.JPG)"));
    if (fn.isEmpty()) {
        return;
    }

    QImageWriter w;
    w.setFileName(fn);
    w.setFormat("JPG");
    w.setQuality(100);

    QImage img(QSize((int)(_scene->width()), (int)(_scene->height())), QImage::Format_RGB32);
    QPainter painter(&img);
    painter.setRenderHint(QPainter::Antialiasing);
    _scene->render(&painter);
    painter.end();

    if (w.write(img)) {
        QMessageBox::information(this, tr("Export Completed"),
                tr("Profile exported to <b>%1</b>.").arg(fn));
    } else {
        QMessageBox::critical(this, tr("Export Failed"),
                tr("Could not export Profile: %1").arg(w.errorString()));
    }
}
Esempio n. 2
0
static QByteArray randomJPEGByteArray(int w=512, int h=512, int q=85 )
{
	QImage image=randomImage(w,h);
	QBuffer bu;
	bu.open(QBuffer::WriteOnly);
	QImageWriter iw;
	iw.setFormat("jpeg");
	iw.setDevice(&bu);
	iw.setOptimizedWrite(true );
	iw.setQuality(q);
	iw.setCompression(9);
	iw.setProgressiveScanWrite(true );
	iw.write( image );
	bu.close();
	QByteArray ba=bu.buffer();
	//utility::byteArrayToFile("random_test.jpeg",ba );
	//qDebug()<<"Random JPEG image of size "<<w<<"x"<<h<<" was "<< utility::humanReadableSize(ba.size())<< "("<<(qreal)ba.size()/((qreal)w*h) << " bytes/pixel)";
	return ba;

}
Esempio n. 3
0
void OpenGLHelpers::takeSnapshot(QString filename, int width, int height, int startY){
    uchar * imageData = new uchar[4*width * height];
    glReadPixels(0, startY,width, height,GL_BGRA,GL_UNSIGNED_BYTE,(void *)imageData);
    int * vals = (int*)imageData, * lo, * hi;

    for(int row = 0; row < height/2; ++row){
        hi = vals+row*width;
        lo = vals + (height - 1 - row)*width;
        for(int i = 0; i < width ; ++i)
            std::swap(hi[i],lo[i]);
    }

    QImage img = QImage(imageData,width,height,QImage::Format_ARGB32);
    QImageWriter * writer = new QImageWriter(filename);
    writer->setFormat("jpg");
    writer->setQuality(100);
    writer->write(img);

    delete writer;
    delete [] imageData;
}