Settare i DPI di una immagine in Qt

Mattepuffo's logo
Settare i DPI di una immagine in Qt

Settare i DPI di una immagine in Qt

In un programmino scritto in Qt, ho una funzione che mi fa il resize delle immagini in base a quello che digita l'utente.

Però mi lascia i DPI invariati; io invece voglio forzarli a 72.

Per farlo ho fatto così:

void ImageResize::resize(QString inputImage, QString dir, int width, int height)
{
    QFileInfo f(inputImage);
    QImage pixmap(inputImage);
    QImage newPixmap;

    int dpm = 72 / 0.0254;
    pixmap.setDotsPerMeterX(dpm);
    pixmap.setDotsPerMeterY(dpm);

    if (width == 0)
    {
        newPixmap = pixmap.scaledToHeight(height, Qt::SmoothTransformation);
    }
    else if (height == 0)
    {
        newPixmap = pixmap.scaledToWidth(width, Qt::SmoothTransformation);
    }
    else
    {
        newPixmap = pixmap.scaled(width, height, Qt::KeepAspectRatio, Qt::SmoothTransformation);
    }
    QFile file(dir + f.fileName());
    file.open(QIODevice::WriteOnly);
    newPixmap.save(&file, 0, 100);
    file.close();
}

In pratica le righe interessate sono queste:

int dpm = 72 / 0.0254;
pixmap.setDotsPerMeterX(dpm);
pixmap.setDotsPerMeterY(dpm);

Enjoy!


Condividi

Commentami!