diff options
author | Christian Ehrlicher <ch.ehrlicher@gmx.de> | 2018-03-11 15:04:55 +0100 |
---|---|---|
committer | Christian Ehrlicher <ch.ehrlicher@gmx.de> | 2018-03-18 09:29:06 +0000 |
commit | 2cd4123661d6f97a8c0889d7a4c5907fa8fbb456 (patch) | |
tree | 90bb7df4e418f15cdef65a5d45b3b2b5d162c37c /src/plugins/imageformats | |
parent | 633a0f51720d149acf5dcddc8debc1f457fff835 (diff) |
QImage/Jpeg: decode/encode comment attributes as utf-8
Although not defined, the jpeg comment field 'content' is treated as
utf-8 nowadys. At least exiftool and exiv2 (tested via gwenview) are
expecting utf-8 here. So we should do the same.
Task-number: QTBUG-44709
Change-Id: If84dafac3e337c7993f09cd59792e721977c9adb
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Diffstat (limited to 'src/plugins/imageformats')
-rw-r--r-- | src/plugins/imageformats/jpeg/qjpeghandler.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/plugins/imageformats/jpeg/qjpeghandler.cpp b/src/plugins/imageformats/jpeg/qjpeghandler.cpp index 1cdc28c077..e52a19703c 100644 --- a/src/plugins/imageformats/jpeg/qjpeghandler.cpp +++ b/src/plugins/imageformats/jpeg/qjpeghandler.cpp @@ -493,10 +493,10 @@ static inline void set_text(const QImage &image, j_compress_ptr cinfo, const QSt { const QMap<QString, QString> text = qt_getImageText(image, description); for (auto it = text.begin(), end = text.end(); it != end; ++it) { - QByteArray comment = it.key().toLatin1(); + QByteArray comment = it.key().toUtf8(); if (!comment.isEmpty()) comment += ": "; - comment += it.value().toLatin1(); + comment += it.value().toUtf8(); if (comment.length() > 65530) comment.truncate(65530); jpeg_write_marker(cinfo, JPEG_COM, (const JOCTET *)comment.constData(), comment.size()); @@ -904,7 +904,7 @@ bool QJpegHandlerPrivate::readJpegHeader(QIODevice *device) for (jpeg_saved_marker_ptr marker = info.marker_list; marker != NULL; marker = marker->next) { if (marker->marker == JPEG_COM) { QString key, value; - QString s = QString::fromLatin1((const char *)marker->data, marker->data_length); + QString s = QString::fromUtf8((const char *)marker->data, marker->data_length); int index = s.indexOf(QLatin1String(": ")); if (index == -1 || s.indexOf(QLatin1Char(' ')) < index) { key = QLatin1String("Description"); |