swift
imageutils.cpp
1 // SPDX-FileCopyrightText: Copyright (C) 2015 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
4 #include "misc/imageutils.h"
5 
6 #include <QBuffer>
7 #include <QIODevice>
8 
9 bool swift::misc::pixmapToPngByteArray(const QPixmap &pixmap, QByteArray &array)
10 {
11  QBuffer buffer(&array);
12  buffer.open(QIODevice::WriteOnly);
13  bool s = pixmap.save(&buffer, "PNG");
14  buffer.close();
15  return s;
16 }
17 
18 QPixmap swift::misc::pngByteArrayToPixmap(const QByteArray &array)
19 {
20  if (array.isEmpty()) { return QPixmap(); }
21  QPixmap p;
22  bool s = p.loadFromData(array, "PNG");
23  return s ? p : QPixmap();
24 }
25 
26 bool swift::misc::pngByteArrayToPixmapRef(const QByteArray &array, QPixmap &pixmap)
27 {
28  if (array.isEmpty()) { return false; }
29  bool s = pixmap.loadFromData(array, "PNG");
30  return s;
31 }
32 
33 QString swift::misc::pixmapToPngHexString(const QPixmap &pixmap)
34 {
35  QByteArray ba;
36  bool s = pixmapToPngByteArray(pixmap, ba);
37  if (!s) { return QString(); }
38  return ba.toHex();
39 }
40 
41 QPixmap swift::misc::pngHexStringToPixmap(const QString &hexString)
42 {
43  if (hexString.isEmpty()) { return QPixmap(); }
44  QByteArray ba(QByteArray::fromHex(hexString.toLatin1()));
45  return pngByteArrayToPixmap(ba);
46 }
47 
48 bool swift::misc::pngHexStringToPixmapRef(const QString &hexString, QPixmap &pixmap)
49 {
50  if (hexString.isEmpty()) { return false; }
51  QByteArray ba(QByteArray::fromHex(hexString.toLatin1()));
52  return pngByteArrayToPixmapRef(ba, pixmap);
53 }
54 
55 QPixmap swift::misc::iconToPixmap(const QIcon &icon)
56 {
57  if (icon.isNull()) { return QPixmap(); }
58  const QList<QSize> sizes = icon.availableSizes();
59  if (!sizes.isEmpty()) { return icon.pixmap(sizes.first()); }
60  return icon.pixmap(16, 16);
61 }
SWIFT_MISC_EXPORT QString pixmapToPngHexString(const QPixmap &pixmap)
Pixmap as HEX string (for PNG image)
Definition: imageutils.cpp:33
SWIFT_MISC_EXPORT QPixmap iconToPixmap(const QIcon &icon)
Icon to pixmap.
Definition: imageutils.cpp:55
SWIFT_MISC_EXPORT bool pixmapToPngByteArray(const QPixmap &pixmap, QByteArray &array)
Pixmap to PNG byte array.
Definition: imageutils.cpp:9
SWIFT_MISC_EXPORT QPixmap pngHexStringToPixmap(const QString &hexString)
Hex encoded pixmap string to Pixmap.
Definition: imageutils.cpp:41
SWIFT_MISC_EXPORT bool pngHexStringToPixmapRef(const QString &hexString, QPixmap &pixmap)
Hex encoded pixmap string to Pixmap.
Definition: imageutils.cpp:48
SWIFT_MISC_EXPORT bool pngByteArrayToPixmapRef(const QByteArray &array, QPixmap &pixmap)
Pixmap from PNG byte array.
Definition: imageutils.cpp:26
SWIFT_MISC_EXPORT QPixmap pngByteArrayToPixmap(const QByteArray &array)
Pixmap from PNG byte array.
Definition: imageutils.cpp:18