QImageReader Class
Die Klasse „QImageReader“ bietet eine formatunabhängige Schnittstelle zum Einlesen von Bildern aus Dateien oder anderen Geräten. Mehr...
| Header: | #include <QImageReader> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QImageReader ist Teil der Mal-Klassen.
Hinweis: Alle Funktionen dieser Klasse sind reentrant.
Öffentliche Typen
| enum | ImageReaderError { FileNotFoundError, DeviceError, UnsupportedFormatError, InvalidDataError, UnknownError } |
Öffentliche Funktionen
| QImageReader() | |
| QImageReader(QIODevice *device, const QByteArray &format = QByteArray()) | |
| QImageReader(const QString &fileName, const QByteArray &format = QByteArray()) | |
| ~QImageReader() | |
| bool | autoDetectImageFormat() const |
| bool | autoTransform() const |
| QColor | backgroundColor() const |
| bool | canRead() const |
| QRect | clipRect() const |
| int | currentImageNumber() const |
| QRect | currentImageRect() const |
| bool | decideFormatFromContent() const |
| QIODevice * | device() const |
(since 6.12) QSize | effectiveSize() const |
| QImageReader::ImageReaderError | error() const |
| QString | errorString() const |
| QString | fileName() const |
| QByteArray | format() const |
| int | imageCount() const |
| QImage::Format | imageFormat() const |
| bool | jumpToImage(int imageNumber) |
| bool | jumpToNextImage() |
| int | loopCount() const |
| int | nextImageDelay() const |
| int | quality() const |
| QImage | read() |
| bool | read(QImage *image) |
| QRect | scaledClipRect() const |
| QSize | scaledSize() const |
| void | setAutoDetectImageFormat(bool enabled) |
| void | setAutoTransform(bool enabled) |
| void | setBackgroundColor(const QColor &color) |
| void | setClipRect(const QRect &rect) |
| void | setDecideFormatFromContent(bool ignored) |
| void | setDevice(QIODevice *device) |
| void | setFileName(const QString &fileName) |
| void | setFormat(const QByteArray &format) |
| void | setQuality(int quality) |
| void | setScaledClipRect(const QRect &rect) |
| void | setScaledSize(const QSize &size) |
| QSize | size() const |
| QByteArray | subType() const |
| QList<QByteArray> | supportedSubTypes() const |
| bool | supportsAnimation() const |
| bool | supportsOption(QImageIOHandler::ImageOption option) const |
| QString | text(const QString &key) const |
| QStringList | textKeys() const |
| QImageIOHandler::Transformations | transformation() const |
Statische öffentliche Mitglieder
(since 6.0) int | allocationLimit() |
| QByteArray | imageFormat(QIODevice *device) |
| QByteArray | imageFormat(const QString &fileName) |
| QList<QByteArray> | imageFormatsForMimeType(const QByteArray &mimeType) |
(since 6.0) void | setAllocationLimit(int mbLimit) |
| QList<QByteArray> | supportedImageFormats() |
| QList<QByteArray> | supportedMimeTypes() |
Ausführliche Beschreibung
Die gängigste Methode zum Einlesen von Bildern erfolgt über die Konstruktoren von „ QImage “ und „ QPixmap “ oder durch den Aufruf von „ QImage::load()“ und „ QPixmap::load()“. „QImageReader“ ist eine spezialisierte Klasse, die Ihnen mehr Kontrolle beim Einlesen von Bildern bietet. Beispielsweise können Sie ein Bild in einer bestimmten Größe einlesen, indem Sie ` setScaledSize()` aufrufen, und Sie können einen Ausschnittbereich auswählen, wodurch effektiv nur Teile eines Bildes geladen werden, indem Sie ` setClipRect()` aufrufen. Je nach der zugrunde liegenden Unterstützung im Bildformat kann dies Speicherplatz sparen und das Laden von Bildern beschleunigen.
Um ein Bild einzulesen, erstellen Sie zunächst ein `QImageReader`-Objekt. Übergeben Sie dabei entweder einen Dateinamen oder einen Gerätezeiger sowie das Bildformat an den Konstruktor von `QImageReader`. Anschließend können Sie verschiedene Optionen festlegen, wie beispielsweise das Ausschnittrechteck (durch Aufruf von ` setClipRect()`) und die Skalierungsgröße (durch Aufruf von ` setScaledSize()`). ` canRead()` gibt das Bild zurück, wenn der `QImageReader` das Bild lesen kann (d. h., das Bildformat wird unterstützt und das Gerät ist zum Lesen geöffnet). Rufen Sie ` read()` auf, um das Bild zu lesen.
Tritt beim Lesen des Bildes ein Fehler auf, gibt ` read()` einen ` QImage`-Wert von `null` zurück. Sie können dann ` error()` aufrufen, um die Art des aufgetretenen Fehlers zu ermitteln, oder ` errorString()`, um eine für Menschen lesbare Beschreibung des Fehlers zu erhalten.
Hinweis: QImageReader übernimmt die exklusive Kontrolle über die zugewiesene Datei oder das zugewiesene Gerät. Jeder Versuch, die zugewiesene Datei oder das zugewiesene Gerät während der Lebensdauer des QImageReader-Objekts zu ändern, führt zu undefinierten Ergebnissen.
Formate
Rufen Sie ` supportedImageFormats()` auf, um eine Liste der Formate zu erhalten, die QImageReader lesen kann. QImageReader unterstützt alle integrierten Bildformate sowie alle Bildformat-Plugins, die das Lesen unterstützen. Rufen Sie ` supportedMimeTypes()` auf, um eine Liste der unterstützten MIME-Typen zu erhalten, die beispielsweise an ` QFileDialog::setMimeTypeFilters()` übergeben werden kann.
QImageReader erkennt das Bildformat standardmäßig automatisch, indem es die angegebene (optionale) Formatzeichenfolge, die Dateinamenerweiterung und den Inhalt des Datenstroms auswertet. Sie können diese Funktion aktivieren oder deaktivieren, indem Sie setAutoDetectImageFormat() aufrufen.
Hochauflösende Versionen von Bildern
Es ist möglich, hochauflösende Versionen von Bildern bereitzustellen, falls eine Skalierung zwischen Gerätepixeln und geräteunabhängigen Pixeln aktiv ist.
Die hochauflösende Version ist durch die Endung „ @2x “ am Basisnamen gekennzeichnet. Bei dem eingelesenen Bild wird das Gerätepixelverhältnis auf den Wert 2 gesetzt.
Dies kann durch Setzen der Umgebungsvariablen ` QT_HIGHDPI_DISABLE_2X_IMAGE_LOADING` deaktiviert werden.
Siehe auch „ QImageWriter“, „ QImageIOHandler “, „ QImageIOPlugin “, „ QMimeDatabase “, „ QColorSpace “, „ QImage::devicePixelRatio()“, „ QPixmap::devicePixelRatio()“, „ QIcon “, „ QPainter::drawPixmap()“ und „ QPainter::drawImage()“.
Dokumentation zu Mitgliedstypen
enum QImageReader::ImageReaderError
Diese Enumeration beschreibt die verschiedenen Arten von Fehlern, die beim Einlesen von Bildern mit QImageReader auftreten können.
| Konstante | Wert | Beschreibung |
|---|---|---|
QImageReader::FileNotFoundError | 1 | QImageReader wurde mit einem Dateinamen verwendet, aber es wurde keine Datei mit diesem Namen gefunden. Dies kann auch passieren, wenn der Dateiname keine Dateiendung enthielt und die Datei mit der korrekten Dateiendung von Qt nicht unterstützt wird. |
QImageReader::DeviceError | 2 | QImageReader Beim Einlesen des Bildes ist ein Gerätefehler aufgetreten. Weitere Informationen dazu, was genau schiefgelaufen ist, erhalten Sie von Ihrem jeweiligen Gerät. |
QImageReader::UnsupportedFormatError | 3 | Qt unterstützt das angeforderte Bildformat nicht. |
QImageReader::InvalidDataError | 4 | Die Bilddaten waren ungültig, und QImageReader konnte daraus kein Bild lesen. Dies kann passieren, wenn die Bilddatei beschädigt ist. |
QImageReader::UnknownError | 0 | Es ist ein unbekannter Fehler aufgetreten. Wenn Sie diesen Wert nach dem Aufruf von ` read()` erhalten, wird dies höchstwahrscheinlich durch einen Fehler in „ QImageReader “ verursacht. |
Dokumentation der Member-Funktionen
QImageReader::QImageReader()
Erstellt ein leeres QImageReader-Objekt. Rufen Sie vor dem Einlesen eines Bildes „ setDevice()“ oder „ setFileName()“ auf.
[explicit] QImageReader::QImageReader(QIODevice *device, const QByteArray &format = QByteArray())
Erstellt ein QImageReader-Objekt mit dem Geräte device und dem Bildformat format.
[explicit] QImageReader::QImageReader(const QString &fileName, const QByteArray &format = QByteArray())
Erstellt ein QImageReader-Objekt mit dem Dateinamen „ fileName “ und dem Bildformat „ format “.
Siehe auch setFileName().
[noexcept] QImageReader::~QImageReader()
Löst das Objekt „ QImageReader “ auf.
[static, since 6.0] int QImageReader::allocationLimit()
Gibt das aktuelle Zuweisungslimit in Megabyte zurück.
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch ` setAllocationLimit()`.
bool QImageReader::autoDetectImageFormat() const
Gibt „ true “ zurück, wenn die automatische Erkennung des Bildformats bei diesem Bildleser aktiviert ist; andernfalls wird „ false “ zurückgegeben. Standardmäßig ist die automatische Erkennung aktiviert.
Siehe auch setAutoDetectImageFormat().
bool QImageReader::autoTransform() const
Gibt „ true “ zurück, wenn der Bild-Handler bei den Methoden „ read()“ und „ effectiveSize()“ Transformationsmetadaten anwendet.
Siehe auch setAutoTransform(), transformation(), read() und effectiveSize().
QColor QImageReader::backgroundColor() const
Gibt die Hintergrundfarbe zurück, die beim Einlesen eines Bildes verwendet wird. Wenn das Bildformat die Festlegung der Hintergrundfarbe nicht unterstützt, wird eine ungültige Farbe zurückgegeben.
Siehe auch setBackgroundColor() und read().
bool QImageReader::canRead() const
Gibt „ true “ zurück, wenn ein Bild für das Gerät gelesen werden kann (d. h., das Bildformat wird unterstützt und das Gerät scheint gültige Daten zu enthalten); andernfalls wird „ false “ zurückgegeben.
canRead() ist eine einfache Funktion, die lediglich einen Schnelltest durchführt, um zu prüfen, ob die Bilddaten gültig sind. read() kann auch dann noch „false“ zurückgeben, wenn canRead() „ true “ zurückgibt, sofern die Bilddaten beschädigt sind.
Hinweis: Ein ` QMimeDatabase `-Abfrage ist normalerweise ein besserer Ansatz als diese Funktion, um potenziell nicht bildbezogene Dateien oder Daten zu identifizieren.
Bei Bildern, die Animationen unterstützen, gibt canRead() „ false “ zurück, sobald alle Frames gelesen wurden.
Siehe auch „ read()“, „ supportedImageFormats()“ und „ QMimeDatabase “.
QRect QImageReader::clipRect() const
Gibt das Ausschnittrechteck (auch als ROI oder „Region of Interest“ bezeichnet) des Bildes zurück. Wenn kein Ausschnittrechteck festgelegt wurde, wird ein ungültiger QRect zurückgegeben.
Siehe auch setClipRect().
int QImageReader::currentImageNumber() const
Bei Bildformaten, die Animationen unterstützen, gibt diese Funktion die Sequenznummer des aktuellen Frames zurück. Wenn das Bildformat keine Animationen unterstützt, wird 0 zurückgegeben.
Diese Funktion gibt -1 zurück, wenn ein Fehler aufgetreten ist.
Siehe auch supportsAnimation(), QImageIOHandler::currentImageNumber() und canRead().
QRect QImageReader::currentImageRect() const
Bei Bildformaten, die Animationen unterstützen, gibt diese Funktion das Rechteck für das aktuelle Bild zurück. Andernfalls wird ein Null-Rechteck zurückgegeben.
Siehe auch „ supportsAnimation()“ und „ QImageIOHandler::currentImageRect()“.
bool QImageReader::decideFormatFromContent() const
Gibt zurück, ob der Bildleser die Wahl des zu verwendenden Plugins ausschließlich anhand des Inhalts des Datenstroms und nicht anhand der Dateiendung treffen soll.
Siehe auch ` setDecideFormatFromContent()`.
QIODevice *QImageReader::device() const
Gibt das Gerät zurück, das derzeit „ QImageReader “ zugewiesen ist, oder „ nullptr “, falls kein Gerät zugewiesen wurde.
Siehe auch setDevice().
[since 6.12] QSize QImageReader::effectiveSize() const
Gibt die effektive Größe des Bildes unter Berücksichtigung der Transformation zurück, ohne den Bildinhalt tatsächlich zu lesen.
Wenn das Bildformat diese Funktion nicht unterstützt, gibt diese Funktion eine ungültige Größe zurück. Die in Qt integrierten Bildhandler unterstützen diese Funktion alle, benutzerdefinierte Bildformat-Plugins sind jedoch nicht dazu verpflichtet.
Diese Funktion wurde in Qt 6.12 eingeführt.
Siehe auch setAutoTransform(), size(), QImageIOHandler::ImageOption, QImageIOHandler::option() und QImageIOHandler::supportsOption().
QImageReader::ImageReaderError QImageReader::error() const
Gibt den Typ des zuletzt aufgetretenen Fehlers zurück.
Siehe auch „ ImageReaderError “ und „ errorString()“.
QString QImageReader::errorString() const
Gibt eine für Menschen lesbare Beschreibung des zuletzt aufgetretenen Fehlers zurück.
Siehe auch ` error()`.
QString QImageReader::fileName() const
Wenn das aktuell zugewiesene Gerät ein „ QFile “ ist oder wenn „ setFileName()“ aufgerufen wurde, gibt diese Funktion den Namen der Datei zurück, aus der „ QImageReader “ liest. Andernfalls (d. h., wenn kein Gerät zugewiesen wurde oder das Gerät kein „ QFile “ ist), wird ein leeres „ QString “ zurückgegeben.
Siehe auch setFileName() und setDevice().
QByteArray QImageReader::format() const
Gibt das Format zurück, das „ QImageReader “ zum Einlesen von Bildern verwendet.
Sie können diese Funktion aufrufen, nachdem Sie dem Reader ein Gerät zugewiesen haben, um das Format des Geräts zu ermitteln. Beispiel:
QImageReader reader("image.png");
// reader.format() == "png"Wenn der Reader kein Bild vom Gerät lesen kann (z. B. weil dort kein Bild vorhanden ist oder das Bild bereits gelesen wurde) oder wenn das Format nicht unterstützt wird, gibt diese Funktion ein leeres `QByteArray()` zurück.
Siehe auch „ setFormat()“ und „ supportedImageFormats()“.
int QImageReader::imageCount() const
Bei Bildformaten, die Animationen unterstützen, gibt diese Funktion die Gesamtanzahl der Bilder in der Animation zurück. Wenn das Format keine Animationen unterstützt, wird 0 zurückgegeben.
Diese Funktion gibt -1 zurück, wenn ein Fehler aufgetreten ist.
Siehe auch supportsAnimation(), QImageIOHandler::imageCount() und canRead().
QImage::Format QImageReader::imageFormat() const
Gibt das Format des Bildes zurück, ohne den Bildinhalt tatsächlich zu lesen. Das Format beschreibt das Bildformat, das von QImageReader::read() zurückgegeben wird, nicht das Format des eigentlichen Bildes.
Wenn das Bildformat diese Funktion nicht unterstützt, gibt diese Funktion ein ungültiges Format zurück.
Siehe auch QImageIOHandler::ImageOption, QImageIOHandler::option() und QImageIOHandler::supportsOption().
[static] QByteArray QImageReader::imageFormat(QIODevice *device)
Sofern diese Funktion unterstützt wird, gibt sie das Bildformat des Geräts zurück: device. Andernfalls wird eine leere Zeichenkette zurückgegeben.
Siehe auch QImageReader::autoDetectImageFormat().
[static] QByteArray QImageReader::imageFormat(const QString &fileName)
Sofern diese Funktion unterstützt wird, gibt sie das Bildformat der Datei „ fileName “ zurück. Andernfalls wird eine leere Zeichenkette zurückgegeben.
[static] QList<QByteArray> QImageReader::imageFormatsForMimeType(const QByteArray &mimeType)
Gibt die Liste der Bildformate zurück, die mimeType entsprechen.
Beachten Sie, dass die Instanz von ` QGuiApplication ` erstellt werden muss, bevor diese Funktion aufgerufen wird.
Siehe auch supportedImageFormats() und supportedMimeTypes().
bool QImageReader::jumpToImage(int imageNumber)
Bei Bildformaten, die Animationen unterstützen, springt diese Funktion zu dem Bild mit der Sequenznummer „ imageNumber “ und gibt bei Erfolg „true“ zurück, andernfalls „false“, falls das entsprechende Bild nicht gefunden werden kann.
Beim nächsten Aufruf von ` read()` wird versucht, dieses Bild zu lesen.
Siehe auch ` jumpToNextImage()` und ` QImageIOHandler::jumpToImage()`.
bool QImageReader::jumpToNextImage()
Bei Bildformaten, die Animationen unterstützen, durchläuft diese Funktion das aktuelle Bild und gibt bei Erfolg „true“ zurück, andernfalls „false“, wenn kein weiteres Bild in der Animation folgt.
Die Standardimplementierung ruft „ read()“ auf und verwirft anschließend das resultierende Bild; der Bild-Handler verfügt jedoch möglicherweise über eine effizientere Methode zur Umsetzung dieser Operation.
Siehe auch ` jumpToImage()` und ` QImageIOHandler::jumpToNextImage()`.
int QImageReader::loopCount() const
Bei Bildformaten, die Animationen unterstützen, gibt diese Funktion die Anzahl der Wiederholungen der Animation zurück. Wenn diese Funktion den Wert -1 zurückgibt, kann dies entweder bedeuten, dass die Animation endlos wiederholt werden soll, oder dass ein Fehler aufgetreten ist. Ist ein Fehler aufgetreten, gibt canRead() den Wert „false“ zurück.
Siehe auch supportsAnimation(), QImageIOHandler::loopCount() und canRead().
int QImageReader::nextImageDelay() const
Bei Bildformaten, die Animationen unterstützen, gibt diese Funktion die Anzahl der Millisekunden zurück, die bis zur Anzeige des nächsten Bildes in der Animation gewartet werden soll. Wenn das Bildformat keine Animationen unterstützt, wird 0 zurückgegeben.
Diese Funktion gibt -1 zurück, wenn ein Fehler aufgetreten ist.
Siehe auch supportsAnimation(), QImageIOHandler::nextImageDelay() und canRead().
int QImageReader::quality() const
Gibt die Qualitätseinstellung des Bildformats zurück.
Siehe auch setQuality().
QImage QImageReader::read()
Liest ein Bild vom Gerät ein. Bei Erfolg wird das eingelesene Bild zurückgegeben; andernfalls wird ein Null- QImage zurückgegeben. Sie können dann die Funktion „ error()“ aufrufen, um die Art des aufgetretenen Fehlers zu ermitteln, oder „ errorString()“, um eine für Menschen lesbare Beschreibung des Fehlers zu erhalten.
Bei Bildformaten, die Animationen unterstützen, liefert ein wiederholter Aufruf von `read()` das nächste Bild. Wenn alle Bilder gelesen wurden, wird ein Nullbild zurückgegeben.
Siehe auch ` canRead()`, ` supportedImageFormats()`, ` supportsAnimation()` und ` QMovie`.
bool QImageReader::read(QImage *image)
Liest ein Bild vom Gerät in ` image` ein, das auf ein ` QImage` verweisen muss. Gibt bei Erfolg ` true ` zurück; andernfalls wird ` false` zurückgegeben.
Wenn ` image ` dasselbe Format und dieselbe Größe wie die zu lesenden Bilddaten hat, muss diese Funktion vor dem Lesen möglicherweise kein neues Bild zuweisen. Aus diesem Grund kann sie schneller sein als die andere Überladung von `read()`, die immer ein neues Bild erstellt; insbesondere beim Lesen mehrerer Bilder mit demselben Format und derselben Größe.
QImage icon(64, 64, QImage::Format_RGB32);
QImageReader reader("icon_64x64.bmp");
if (reader.read(&icon)) {
// Display icon
}Bei Bildformaten, die Animationen unterstützen, liefert der wiederholte Aufruf von `read()` jeweils das nächste Bild. Wenn alle Bilder gelesen wurden, wird ein Null-Bild zurückgegeben.
Dies ist eine überladene Funktion.
Siehe auch „ canRead()“, „ supportedImageFormats()“, „ supportsAnimation()“ und „ QMovie “.
QRect QImageReader::scaledClipRect() const
Gibt das skalierte Ausschnittrechteck des Bildes zurück.
Siehe auch „ setScaledClipRect()“.
QSize QImageReader::scaledSize() const
Gibt die skalierte Größe des Bildes zurück.
Siehe auch „ setScaledSize()“.
[static, since 6.0] void QImageReader::setAllocationLimit(int mbLimit)
Legt das Zuweisungslimit auf mbLimit Megabyte fest. Bilder, für die eine Speicherzuweisung QImage erforderlich wäre, die über diesem Limit liegt, werden abgelehnt. Wenn mbLimit den Wert 0 hat, wird die Überprüfung der Zuweisungsgröße deaktiviert.
Diese Begrenzung hilft Anwendungen dabei, einen unerwartet hohen Speicherverbrauch durch das Laden beschädigter Bilddateien zu vermeiden. Normalerweise ist es nicht erforderlich, diesen Wert zu ändern. Die Standardbegrenzung ist für alle gängigen Bildgrößen ausreichend.
Zur Laufzeit kann dieser Wert durch die Umgebungsvariable QT_IMAGEIO_MAXALLOC überschrieben werden.
Hinweis: Der Speicherbedarf wird für mindestens 32 Bit pro Pixel berechnet, da Qt ein Bild in der Regel auf diese Farbtiefe konvertiert, wenn es in der Qt GUI verwendet wird. Das bedeutet, dass die effektive Zuweisungsgrenze beim Lesen von 1-bpp- und 8-bpp-Bildern deutlich kleiner ist als mbLimit.
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch ` allocationLimit()`.
void QImageReader::setAutoDetectImageFormat(bool enabled)
Wenn „ enabled “ auf „true“ gesetzt ist, ist die automatische Erkennung des Bildformats aktiviert; andernfalls ist sie deaktiviert. Standardmäßig ist die automatische Erkennung aktiviert.
QImageReader verwendet einen umfassenden Ansatz zur Erkennung des Bildformats; wenn Sie zunächst einen Dateinamen an ` QImageReader` übergeben, versucht die Funktion, die Dateierweiterung zu ermitteln, sofern der angegebene Dateiname nicht auf eine vorhandene Datei verweist, indem sie dem angegebenen Dateinamen nacheinander unterstützte Standarderweiterungen anhängt. Anschließend wendet sie den folgenden Ansatz zur Erkennung des Bildformats an:
- Zunächst werden Bild-Plugins abgefragt, entweder basierend auf der optionalen Formatzeichenfolge oder auf der Dateinamenerweiterung (sofern es sich bei der Quelle um eine Datei handelt). In dieser Phase findet noch keine Inhaltserkennung statt. ` QImageReader ` wählt das erste Plugin aus, das das Lesen dieses Formats unterstützt.
- Wenn kein Plugin das Bildformat unterstützt, werden die in Qt integrierten Handler anhand der optionalen Formatzeichenfolge oder der Dateinamenerweiterung überprüft.
- Werden weder geeignete Plugins noch integrierte Handler gefunden, wird jedes Plugin durch Überprüfung des Inhalts des Datenstroms getestet.
- Konnte kein Plugin das Bildformat anhand des Dateninhalts erkennen, wird jeder integrierte Bild-Handler durch Überprüfung des Inhalts getestet.
- Sollten schließlich alle oben genannten Ansätze fehlschlagen, meldet „ QImageReader “ einen Fehler beim Versuch, das Bild zu lesen.
Durch Deaktivieren der automatischen Bildformaterkennung fragt ` QImageReader ` die Plugins und integrierten Handler nur anhand der Formatzeichenfolge ab (d. h., Dateinamenerweiterungen werden nicht geprüft).
Siehe auch autoDetectImageFormat(), QImageIOHandler::canRead() und QImageIOPlugin::capabilities().
void QImageReader::setAutoTransform(bool enabled)
Legt fest, dass auf Bilder, die von read() zurückgegeben werden, und auf Größenangaben von effectiveSize() automatisch Transformationsmetadaten angewendet werden sollen, wenn enabled den Wert „ true “ hat.
Siehe auch autoTransform(), transformation(), read() und effectiveSize().
void QImageReader::setBackgroundColor(const QColor &color)
Setzt die Hintergrundfarbe auf color. Bildformate, die diese Operation unterstützen, sollten den Hintergrund vor dem Einlesen eines Bildes auf color initialisieren.
Siehe auch backgroundColor() und read().
void QImageReader::setClipRect(const QRect &rect)
Legt den Bildausschnitt (auch als ROI oder „Region of Interest“ bezeichnet) auf rect fest. Die Koordinaten von rect beziehen sich auf die untransformierte Bildgröße, wie sie von size() zurückgegeben wird.
Siehe auch clipRect(), setScaledSize() und setScaledClipRect().
void QImageReader::setDecideFormatFromContent(bool ignored)
Wenn „ ignored “ auf „true“ gesetzt ist, ignoriert der Bildleser die angegebenen Formate oder Dateiendungen und entscheidet ausschließlich anhand des Inhalts im Datenstrom, welches Plugin verwendet werden soll.
Wird dieses Flag gesetzt, werden alle Bild-Plugins geladen. Jedes Plugin liest die ersten Bytes der Bilddaten und entscheidet, ob es kompatibel ist oder nicht.
Dadurch wird auch die automatische Erkennung des Bildformats deaktiviert.
Siehe auch ` decideFormatFromContent()`.
void QImageReader::setDevice(QIODevice *device)
Setzt das Gerät von „ QImageReader “ auf „ device “. Wenn bereits ein Gerät festgelegt wurde, wird das alte Gerät aus „ QImageReader “ entfernt und ansonsten unverändert belassen.
Ist das Gerät noch nicht geöffnet, versucht ` QImageReader `, das Gerät im Modus ` ReadOnly ` zu öffnen, indem es `open()` aufruft. Beachten Sie, dass dies bei bestimmten Geräten nicht funktioniert, wie z. B. ` QProcess`, ` QTcpSocket ` und ` QUdpSocket`, bei denen zum Öffnen des Geräts zusätzliche Logik erforderlich ist.
Siehe auch device() und setFileName().
void QImageReader::setFileName(const QString &fileName)
Legt den Dateinamen von „ QImageReader “ auf „ fileName “ fest. Intern erstellt „ QImageReader “ ein „ QFile “-Objekt, öffnet es im Modus „ ReadOnly “ und verwendet dieses beim Einlesen von Bildern.
Wenn „ fileName “ keine Dateiendung enthält (z. B. „.png“ oder „.bmp“), durchläuft „ QImageReader “ alle unterstützten Dateiendungen, bis eine passende Datei gefunden wird.
Siehe auch fileName(), setDevice() und supportedImageFormats().
void QImageReader::setFormat(const QByteArray &format)
Legt das Format fest, das QImageReader beim Einlesen von Bildern verwenden soll, und zwar auf „ format “. „ format “ ist eine Textzeichenfolge, bei der Groß- und Kleinschreibung keine Rolle spielt. Beispiel:
QImageReader reader;
reader.setFormat("png"); // same as reader.setFormat("PNG");Sie können ` supportedImageFormats()` aufrufen, um die vollständige Liste der von ` QImageReader ` unterstützten Formate anzuzeigen.
Siehe auch format().
void QImageReader::setQuality(int quality)
Legt die Qualitätseinstellung des Bildformats auf „ quality “ fest.
Bei einigen Bildformaten, insbesondere bei verlustbehafteten, besteht ein Kompromiss zwischen a) der visuellen Qualität des resultierenden Bildes und b) der Ausführungszeit der Dekodierung. Diese Funktion legt den Grad dieses Kompromisses für Bildformate fest, die dies unterstützen.
Beim Einlesen skalierter Bilder kann die Qualitätseinstellung auch den Grad des Kompromisses zwischen visueller Qualität und Ausführungsgeschwindigkeit des Skalierungsalgorithmus beeinflussen.
Der Wertebereich von ` quality ` hängt vom Bildformat ab. Das „jpeg“-Format unterstützt beispielsweise einen Qualitätsbereich von 0 (geringe visuelle Qualität) bis 100 (hohe visuelle Qualität).
Siehe auch quality() und setScaledSize().
void QImageReader::setScaledClipRect(const QRect &rect)
Setzt das skalierte Ausschnittrechteck auf rect. Das skalierte Ausschnittrechteck ist das Ausschnittrechteck (auch als ROI oder „Region of Interest“ bezeichnet), das nach der Skalierung des Bildes angewendet wird.
Siehe auch scaledClipRect() und setScaledSize().
void QImageReader::setScaledSize(const QSize &size)
Legt die skalierte Größe des Bildes auf „ size “ fest. Die Skalierung erfolgt nach dem anfänglichen Ausschnittbereich, jedoch bevor der skalierte Ausschnittbereich angewendet wird. Der für die Skalierung verwendete Algorithmus hängt vom Bildformat ab. Standardmäßig (d. h., wenn das Bildformat keine Skalierung unterstützt) verwendet ` QImageReader ` die Funktion `QImage::scale()` mit `Qt::SmoothScaling`.
Wenn in ` size` nur eine Dimension festgelegt ist, wird die andere aus dem ` natural size ` des Bildes berechnet, um das Seitenverhältnis beizubehalten.
Siehe auch scaledSize(), setClipRect() und setScaledClipRect().
QSize QImageReader::size() const
Gibt die Größe des Bildes zurück, ohne den Bildinhalt tatsächlich zu lesen.
Wenn das Bildformat diese Funktion nicht unterstützt, gibt diese Funktion eine ungültige Größe zurück. Die in Qt integrierten Bildhandler unterstützen diese Funktion alle, benutzerdefinierte Bildformat-Plugins sind jedoch nicht dazu verpflichtet.
Siehe auch effectiveSize(), QImageIOHandler::ImageOption, QImageIOHandler::option() und QImageIOHandler::supportsOption().
QByteArray QImageReader::subType() const
Gibt den Subtyp des Bildes zurück.
[static] QList<QByteArray> QImageReader::supportedImageFormats()
Gibt die Liste der von QImageReader unterstützten Bildformate zurück.
Standardmäßig kann Qt die folgenden Formate lesen:
| Format | MIME-Typ | Beschreibung |
|---|---|---|
| BMP | image/bmp | Windows-Bitmap |
| GIF | image/gif | Graphic Interchange Format (optional) |
| JPG | image/jpeg | Joint Photographic Experts Group |
| PNG | image/png | Portable Network Graphics |
| PBM | image/x-portable-bitmap | Portable Bitmap |
| PGM | image/x-portable-graymap | Portable Graymap |
| PPM | image/x-portable-pixmap | Portable Pixmap |
| XBM | image/x-xbitmap | X11-Bitmap |
| XPM | image/x-xpixmap | X11-Pixmap |
| SVG | image/svg+xml | Scalable Vector Graphics |
Das Lesen und Schreiben von SVG-Dateien wird über das Qt SVG Modul. Das Qt Image Formats Modul bietet Unterstützung für weitere Bildformate.
Beachten Sie, dass die Instanz ` QCoreApplication ` erstellt sein muss, bevor diese Funktion aufgerufen wird.
Siehe auch setFormat(), QImageWriter::supportedImageFormats() und QImageIOPlugin.
[static] QList<QByteArray> QImageReader::supportedMimeTypes()
Gibt die Liste der von QImageReader unterstützten MIME-Typen zurück.
Beachten Sie, dass die Instanz von ` QApplication ` erstellt sein muss, bevor diese Funktion aufgerufen wird.
Siehe auch ` supportedImageFormats()` und ` QImageWriter::supportedMimeTypes()`.
QList<QByteArray> QImageReader::supportedSubTypes() const
Gibt die Liste der von einem Bild unterstützten Untertypen zurück.
bool QImageReader::supportsAnimation() const
Gibt „ true “ zurück, wenn das Bildformat Animationen unterstützt; andernfalls wird „false“ zurückgegeben.
Siehe auch QMovie::supportedFormats().
bool QImageReader::supportsOption(QImageIOHandler::ImageOption option) const
Gibt „ true “ zurück, wenn der Reader „ option “ unterstützt; andernfalls wird „false“ zurückgegeben.
Verschiedene Bildformate unterstützen unterschiedliche Optionen. Rufen Sie diese Funktion auf, um festzustellen, ob eine bestimmte Option vom aktuellen Format unterstützt wird. Das PNG-Format ermöglicht es Ihnen beispielsweise, Text in die Metadaten des Bildes einzubetten (siehe text()), und das BMP-Format ermöglicht es Ihnen, die Größe des Bildes zu ermitteln, ohne das gesamte Bild in den Arbeitsspeicher zu laden (siehe size()).
QImageReader reader(":/image.png");
if (reader.supportsOption(QImageIOHandler::Size))
qDebug() << "Size:" << reader.size();Siehe auch QImageWriter::supportsOption().
QString QImageReader::text(const QString &key) const
Gibt den Bildtext zurück, der mit „ key “ verknüpft ist.
Die Unterstützung für diese Option wird über ` QImageIOHandler::Description` implementiert.
Siehe auch ` textKeys()` und ` QImageWriter::setText()`.
QStringList QImageReader::textKeys() const
Gibt die Textschlüssel für dieses Bild zurück. Sie können diese Schlüssel mit text() verwenden, um den Bildtext für einen bestimmten Schlüssel aufzulisten.
Die Unterstützung für diese Option wird über ` QImageIOHandler::Description` implementiert.
Siehe auch text(), QImageWriter::setText() und QImage::textKeys().
QImageIOHandler::Transformations QImageReader::transformation() const
Gibt die Transformationsmetadaten des Bildes zurück, einschließlich der Bildausrichtung. Wenn das Format keine Transformationsmetadaten unterstützt, wird „ QImageIOHandler::TransformationNone “ zurückgegeben.
Siehe auch „ setAutoTransform()“ und „ autoTransform()“.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.