File indexing completed on 2024-03-24 16:02:10
0001 /* 0002 A command line tool to set IPTC Preview 0003 0004 SPDX-FileCopyrightText: 2009-2012 Gilles Caulier <caulier dot gilles at gmail dot com> 0005 0006 SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 // Qt includes 0010 0011 #include <QTransform> 0012 #include <QImage> 0013 #include <QString> 0014 #include <QFile> 0015 #include <QDebug> 0016 0017 // Local includes 0018 0019 #include "kexiv2.h" 0020 0021 using namespace KExiv2Iface; 0022 0023 int main (int argc, char **argv) 0024 { 0025 if (argc != 2) 0026 { 0027 qDebug() << "setiptcpreview - update/add jpeg iptc preview to image"; 0028 qDebug() << "Usage: <image>"; 0029 return -1; 0030 } 0031 0032 QImage preview; 0033 QString filePath = QString::fromLocal8Bit(argv[1]); 0034 KExiv2 meta(filePath); 0035 0036 QImage image(filePath); 0037 QTransform matrix; 0038 matrix.rotate(90); 0039 image = image.transformed(matrix); 0040 0041 QSize previewSize = image.size(); 0042 previewSize.scale(1280, 1024, Qt::KeepAspectRatio); 0043 0044 // Ensure that preview is not upscaled 0045 if (previewSize.width() >= (int)image.width()) 0046 preview = image.copy(); 0047 else 0048 preview = image.scaled(previewSize.width(), previewSize.height(), Qt::IgnoreAspectRatio).copy(); 0049 0050 meta.setImagePreview(preview); 0051 meta.applyChanges(); 0052 0053 QImage preview2; 0054 KExiv2 meta2(filePath); 0055 meta2.getImagePreview(preview2); 0056 preview2.save(QString::fromLatin1("preview.png"), "PNG"); 0057 0058 return 0; 0059 }