QImageReader Class

Die Klasse QImageReader bietet eine formatunabhängige Schnittstelle zum Lesen von Bildern aus Dateien oder anderen Geräten. Mehr...

Kopfzeile: #include <QImageReader>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

Hinweis: Alle Funktionen in 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
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()

Detaillierte Beschreibung

Die gebräuchlichste Art, Bilder zu lesen, ist ü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 Lesen von Bildern gibt. Sie können beispielsweise ein Bild in einer bestimmten Größe einlesen, indem Sie setScaledSize() aufrufen, und Sie können ein Clip-Rect auswählen, um effektiv nur Teile eines Bildes zu laden, indem Sie setClipRect() aufrufen. Abhängig von der zugrundeliegenden Unterstützung im Bildformat kann dies Speicher sparen und das Laden von Bildern beschleunigen.

Um ein Bild zu lesen, beginnen Sie mit der Erstellung eines QImageReader-Objekts. Übergeben Sie entweder einen Dateinamen oder einen Gerätezeiger und das Bildformat an den Konstruktor von QImageReader. Anschließend können Sie verschiedene Optionen festlegen, wie z. B. das Clip-Rect (durch Aufruf von setClipRect()) und die skalierte Größ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.

Wenn beim Lesen des Bildes ein Fehler auftritt, gibt read() ein Null QImage zurück. Sie können dann error() aufrufen, um die Art des aufgetretenen Fehlers zu ermitteln, oder errorString(), um eine von Menschen lesbare Beschreibung des Fehlers zu erhalten.

Hinweis: QImageReader übernimmt die exklusive Kontrolle über die zugewiesene Datei oder das Gerät. Jeder Versuch, die zugewiesene Datei oder das zugewiesene Gerät während der Lebensdauer des QImageReader-Objekts zu verä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 eingebauten Bildformate, zusätzlich zu allen Bildformat-Plugins, die das Lesen unterstützen. Rufen Sie supportedMimeTypes() auf, um eine Liste der unterstützten MIME-Typen zu erhalten, die zum Beispiel an QFileDialog::setMimeTypeFilters() übergeben werden kann.

QImageReader erkennt das Bildformat standardmäßig automatisch anhand der (optionalen) Formatzeichenkette, der Dateinamensendung und des Datenstroms. 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, wenn eine Skalierung zwischen Gerätepixeln und geräteunabhängigen Pixeln wirksam ist.

Die hochauflösende Version wird durch das Suffix @2x am Basisnamen gekennzeichnet. Für das eingelesene 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 der Mitgliedstypen

enum QImageReader::ImageReaderError

Diese Aufzählung beschreibt die verschiedenen Arten von Fehlern, die beim Lesen von Bildern mit QImageReader auftreten können.

KonstanteWertBeschreibung
QImageReader::FileNotFoundError1QImageReader wurde mit einem Dateinamen verwendet, aber es wurde keine Datei mit diesem Namen gefunden. Dies kann auch passieren, wenn der Dateiname keine Erweiterung enthielt und die Datei mit der richtigen Erweiterung von Qt nicht unterstützt wird.
QImageReader::DeviceError2QImageReader Beim Lesen des Bildes ist ein Gerätefehler aufgetreten. Sie können Ihr spezielles Gerät konsultieren, um weitere Details zu erfahren, was schief gelaufen ist.
QImageReader::UnsupportedFormatError3Qt unterstützt das angeforderte Bildformat nicht.
QImageReader::InvalidDataError4Die Bilddaten waren ungültig und QImageReader war nicht in der Lage, ein Bild aus der Datei zu lesen. Dies kann passieren, wenn die Bilddatei beschädigt ist.
QImageReader::UnknownError0Ein unbekannter Fehler ist aufgetreten. Wenn Sie diesen Wert nach dem Aufruf von read() erhalten, ist dies höchstwahrscheinlich auf einen Fehler in QImageReader zurückzuführen.

Dokumentation der Mitgliedsfunktionen

QImageReader::QImageReader()

Konstruiert ein leeres QImageReader-Objekt. Bevor Sie ein Bild lesen, rufen Sie setDevice() oder setFileName() auf.

[explicit] QImageReader::QImageReader(QIODevice *device, const QByteArray &format = QByteArray())

Konstruiert ein QImageReader-Objekt mit dem Gerät device und dem Bildformat format.

[explicit] QImageReader::QImageReader(const QString &fileName, const QByteArray &format = QByteArray())

Konstruiert ein QImageReader-Objekt mit dem Dateinamen fileName und dem Bildformat format.

Siehe auch setFileName().

[noexcept] QImageReader::~QImageReader()

Zerstört das Objekt QImageReader.

[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 auf 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 Image Handler Transformations-Metadaten auf read() anwenden wird.

Siehe auch setAutoTransform(), transformation(), und read().

QColor QImageReader::backgroundColor() const

Gibt die Hintergrundfarbe zurück, die beim Lesen eines Bildes verwendet wird. Wenn das Bildformat die Einstellung 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 leichtgewichtige Funktion, die nur einen schnellen Test durchführt, um festzustellen, ob die Bilddaten gültig sind. read() kann immer noch false zurückgeben, nachdem canRead() true zurückgegeben hat, wenn die Bilddaten beschädigt sind.

Hinweis: Ein QMimeDatabase lookup ist normalerweise ein besserer Ansatz als diese Funktion, um potenziell bildfremde Dateien oder Daten zu identifizieren.

Bei Bildern, die Animation unterstützen, gibt canRead() false zurück, wenn alle Bilder gelesen wurden.

Siehe auch read(), supportedImageFormats(), und QMimeDatabase.

QRect QImageReader::clipRect() const

Gibt das Clip-Rect (auch bekannt als ROI oder Region Of Interest) des Bildes zurück. Wurde kein Clip-Rect festgelegt, wird ein ungültiger QRect zurückgegeben.

Siehe auch setClipRect().

int QImageReader::currentImageNumber() const

Bei Bildformaten, die Animation unterstützen, gibt diese Funktion die Sequenznummer des aktuellen Bildes zurück. Wenn das Bildformat die Animation nicht 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 Animation unterstützen, gibt diese Funktion das Rect für den aktuellen Frame zurück. Andernfalls wird ein Null-Rect zurückgegeben.

Siehe auch supportsAnimation() und QImageIOHandler::currentImageRect().

bool QImageReader::decideFormatFromContent() const

Gibt zurück, ob das Bildleseprogramm nur anhand des Inhalts des Datenstroms und nicht anhand der Dateierweiterung entscheiden soll, welches Plugin zu verwenden ist.

Siehe auch setDecideFormatFromContent().

QIODevice *QImageReader::device() const

Gibt das Gerät zurück, das derzeit QImageReader zugewiesen ist, oder nullptr, wenn kein Gerät zugewiesen wurde.

Siehe auch setDevice().

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 menschenlesbare Beschreibung des letzten 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 QImageReader zurück, aus der gelesen wird. 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 Lesen von Bildern verwendet.

Sie können diese Funktion aufrufen, nachdem Sie dem Lesegerät ein Gerät zugewiesen haben, um das Format des Geräts zu bestimmen. Ein Beispiel:

QImageReader reader("image.png");
// reader.format() == "png"

Wenn das Lesegerät kein Bild aus dem Gerät lesen kann (z. B. weil 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 Animation unterstützen, gibt diese Funktion die Gesamtzahl der Bilder in der Animation zurück. Wenn das Format keine Animation 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 Inhalt des Bildes zu lesen. Das Format beschreibt das Bildformat, das QImageReader::read() zurückgibt, nicht das Format des eigentlichen Bildes.

Wenn das Bildformat dieses Merkmal 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)

Falls unterstützt, gibt diese Funktion das Bildformat des Geräts device zurück. Andernfalls wird eine leere Zeichenkette zurückgegeben.

Siehe auch QImageReader::autoDetectImageFormat().

[static] QByteArray QImageReader::imageFormat(const QString &fileName)

Falls unterstützt, gibt diese Funktion 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 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, dessen Sequenznummer imageNumber ist, und gibt bei Erfolg true zurück oder false, wenn das entsprechende Bild nicht gefunden werden kann.

Der nächste Aufruf von read() wird versuchen, dieses Bild zu lesen.

Siehe auch jumpToNextImage() und QImageIOHandler::jumpToImage().

bool QImageReader::jumpToNextImage()

Bei Bildformaten, die eine Animation unterstützen, durchläuft diese Funktion das aktuelle Bild und gibt true zurück, wenn sie erfolgreich war, oder false, wenn es kein folgendes Bild in der Animation gibt.

Die Standardimplementierung ruft read() auf und verwirft dann das resultierende Bild, aber der Image-Handler kann eine effizientere Methode zur Implementierung dieser Operation haben.

Siehe auch jumpToImage() und QImageIOHandler::jumpToNextImage().

int QImageReader::loopCount() const

Bei Bildformaten, die Animation unterstützen, gibt diese Funktion die Anzahl der Schleifen zurück, die die Animation durchlaufen soll. Wenn diese Funktion -1 zurückgibt, kann das entweder bedeuten, dass die Animation eine Endlosschleife durchlaufen soll, oder dass ein Fehler aufgetreten ist. Wenn ein Fehler aufgetreten ist, gibt canRead() false zurück.

Siehe auch supportsAnimation(), QImageIOHandler::loopCount(), und canRead().

int QImageReader::nextImageDelay() const

Bei Bildformaten, die Animation unterstützen, gibt diese Funktion die Anzahl der Millisekunden zurück, die bis zur Anzeige des nächsten Bildes der Animation gewartet werden soll. Wenn das Bildformat die Animation nicht 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 aus dem Gerät. Bei Erfolg wird das gelesene Bild zurückgegeben; andernfalls wird ein Nullwert QImage zurückgegeben. Sie können dann error() aufrufen, um die Art des aufgetretenen Fehlers zu ermitteln, oder errorString(), um eine von Menschen lesbare Beschreibung des Fehlers zu erhalten.

Bei Bildformaten, die Animation unterstützen, wird durch wiederholtes Aufrufen von read() das nächste Bild zurückgegeben. Wenn alle Bilder gelesen wurden, wird ein Null-Bild zurückgegeben.

Siehe auch canRead(), supportedImageFormats(), supportsAnimation(), und QMovie.

bool QImageReader::read(QImage *image)

Dies ist eine überladene Funktion.

Liest ein Bild vom Gerät in image ein, das auf QImage verweisen muss. Bei Erfolg wird true zurückgegeben; 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 read()-Überladung, die immer ein neues Bild konstruiert; insbesondere wenn mehrere Bilder mit demselben Format und derselben Größe gelesen werden.

QImage icon(64, 64, QImage::Format_RGB32);
QImageReader reader("icon_64x64.bmp");
if (reader.read(&icon)) {
    // Display icon
}

Bei Bildformaten, die Animationen unterstützen, gibt der wiederholte Aufruf von read() das nächste Bild zurück. Wenn alle Bilder gelesen wurden, wird ein Null-Bild zurückgegeben.

Siehe auch canRead(), supportedImageFormats(), supportsAnimation(), und QMovie.

QRect QImageReader::scaledClipRect() const

Gibt das skalierte Clip-Rect 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)

Setzt die Zuweisungsgrenze auf mbLimit Megabyte. Bilder, die eine QImage Speicherzuweisung oberhalb dieser Grenze erfordern würden, werden abgelehnt. Wenn mbLimit gleich 0 ist, wird die Überprüfung der Zuweisungsgröße deaktiviert.

Diese Grenze hilft Anwendungen, unerwartet hohen Speicherverbrauch durch das Laden beschädigter Bilddateien zu vermeiden. Normalerweise ist es nicht notwendig, sie zu ändern. Das Standardlimit ist groß genug für alle gängigen Bildgrößen.

Zur Laufzeit kann dieser Wert durch die Umgebungsvariable QT_IMAGEIO_MAXALLOC außer Kraft gesetzt werden.

Hinweis: Der Speicherbedarf wird für ein Minimum von 32 Bit pro Pixel berechnet, da Qt ein Bild normalerweise in diese Tiefe konvertiert, wenn es in der 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 true 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 einen Dateinamen an QImageReader übergeben, wird zunächst versucht, die Dateierweiterung zu erkennen, wenn der angegebene Dateiname nicht auf eine bestehende Datei verweist, indem unterstützte Standarderweiterungen an den angegebenen Dateinamen angehängt werden, eine nach der anderen. Zur Erkennung des Bildformats wird dann folgendermaßen vorgegangen:

  • Zuerst werden die Bild-Plugins abgefragt, entweder auf der Grundlage der optionalen Formatzeichenkette oder der Dateinamenserweiterung (wenn das Quellgerät eine Datei ist). In diesem Stadium wird keine Inhaltserkennung durchgeführt. QImageReader wählt das erste Plugin, das das Lesen dieses Formats unterstützt.
  • Wenn kein Plugin das Bildformat unterstützt, werden die in Qt eingebauten Handler entweder anhand des optionalen Formatstrings oder des Suffixes des Dateinamens überprüft.
  • Wenn keine fähigen Plugins oder eingebauten Handler gefunden werden, wird jedes Plugin getestet, indem der Inhalt des Datenstroms untersucht wird.
  • Wenn keine Plugins das Bildformat anhand des Dateninhalts erkennen konnten, wird jeder integrierte Image-Handler durch Prüfung des Inhalts getestet.
  • Wenn alle oben genannten Ansätze fehlschlagen, meldet QImageReader einen Fehler beim Versuch, das Bild zu lesen.

Wenn Sie die automatische Erkennung des Bildformats deaktivieren, fragt QImageReader die Plugins und integrierten Handler nur anhand des Formatstrings ab (d. h. es werden keine Dateinamenserweiterungen getestet).

Siehe auch autoDetectImageFormat(), QImageIOHandler::canRead(), und QImageIOPlugin::capabilities().

void QImageReader::setAutoTransform(bool enabled)

Legt fest, dass auf Bilder, die von read() zurückgegeben werden, automatisch Transformations-Metadaten angewendet werden sollen, wenn enabled true ist.

Siehe auch autoTransform(), transformation(), und read().

void QImageReader::setBackgroundColor(const QColor &color)

Setzt die Hintergrundfarbe auf color. Von Bildformaten, die diese Operation unterstützen, wird erwartet, dass sie den Hintergrund auf color initialisieren, bevor sie ein Bild lesen.

Siehe auch backgroundColor() und read().

void QImageReader::setClipRect(const QRect &rect)

Setzt das Bildausschnitt-Rect (auch bekannt als ROI oder Region Of Interest) auf rect. Die Koordinaten von rect sind relativ zur untransformierten Bildgröße, wie von size() zurückgegeben.

Siehe auch clipRect(), setScaledSize(), und setScaledClipRect().

void QImageReader::setDecideFormatFromContent(bool ignored)

Wenn ignored auf true gesetzt ist, ignoriert der Bildleser angegebene Formate oder Dateierweiterungen und entscheidet nur anhand des Inhalts des Datenstroms, welches Plugin verwendet werden soll.

Das Setzen dieses Flags bedeutet, dass alle Bild-Plugins geladen werden. Jedes Plugin liest die ersten Bytes in den Bilddaten und entscheidet, ob das Plugin kompatibel ist oder nicht.

Dies deaktiviert auch die automatische Erkennung des Bildformats.

Siehe auch decideFormatFromContent().

void QImageReader::setDevice(QIODevice *device)

Setzt das Gerät von QImageReader auf device. Wenn bereits ein Gerät gesetzt wurde, wird das alte Gerät aus QImageReader entfernt und ansonsten unverändert belassen.

Wenn das Gerät noch nicht geöffnet ist, versucht QImageReader, das Gerät im Modus ReadOnly durch Aufruf von open() zu öffnen. Beachten Sie, dass dies bei bestimmten Geräten nicht funktioniert, wie z. B. QProcess, QTcpSocket und QUdpSocket, bei denen mehr Logik zum Öffnen des Geräts erforderlich ist.

Siehe auch device() und setFileName().

void QImageReader::setFileName(const QString &fileName)

Setzt den Dateinamen von QImageReader auf fileName. Intern erstellt QImageReader ein QFile -Objekt, öffnet es im Modus ReadOnly und verwendet dieses beim Lesen von Bildern.

Wenn fileName keine Dateierweiterung enthält (z. B. .png oder .bmp), durchläuft QImageReader alle unterstützten Erweiterungen, bis es eine passende Datei findet.

Siehe auch fileName(), setDevice(), und supportedImageFormats().

void QImageReader::setFormat(const QByteArray &format)

Legt das Format, das QImageReader beim Lesen von Bildern verwendet, auf format fest. format ist eine von der Groß- und Kleinschreibung unabhängige Textzeichenfolge. Beispiel:

QImageReader reader;
reader.setFormat("png"); // same as reader.setFormat("PNG");

Sie können supportedImageFormats() aufrufen, um die vollständige Liste der Formate zu erhalten, die QImageReader unterstützt.

Siehe auch format().

void QImageReader::setQuality(int quality)

Setzt die Qualitätseinstellung für das Bildformat auf quality.

Einige Bildformate, insbesondere verlustbehaftete, bringen einen Kompromiss zwischen a) der visuellen Qualität des resultierenden Bildes und b) der Dekodierzeit mit sich. Diese Funktion legt den Grad dieses Kompromisses für Bildformate fest, die ihn unterstützen.

Im Falle des Lesens skalierter Bilder kann die Qualitätseinstellung auch den Kompromiss zwischen visueller Qualität und Ausführungsgeschwindigkeit des Skalierungsalgorithmus beeinflussen.

Der Wertebereich von quality hängt vom Bildformat ab. Das "jpeg"-Format unterstützt zum Beispiel einen Qualitätsbereich von 0 (niedrige visuelle Qualität) bis 100 (hohe visuelle Qualität).

Siehe auch quality() und setScaledSize().

void QImageReader::setScaledClipRect(const QRect &rect)

Setzt das skalierte Clip-Rect auf rect. Das skalierte Clip-Rect ist das Clip-Rect (auch bekannt als ROI oder Region Of Interest), 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 Clip-Rect, aber bevor das skalierte Clip-Rect 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 QImage::scale() mit Qt::SmoothScaling.

Wenn nur eine Dimension in size festgelegt ist, wird die andere Dimension aus natural size 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 Inhalt des Bildes zu lesen.

Wenn das Bildformat diese Funktion nicht unterstützt, gibt diese Funktion eine ungültige Größe zurück. Die in Qt eingebauten Image-Handler unterstützen alle diese Funktion, aber benutzerdefinierte Image-Format-Plugins müssen dies nicht tun.

Siehe auch 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:

FormatMIME-TypBeschreibung
BMPbild/bmpWindows-Bitmap
GIFbild/gifGrafik-Austauschformat (optional)
JPGbild/jpegGemeinsame Expertengruppe für Fotografie
PNGbild/pngPortable Netzwerkgrafik
PBMbild/x-portable-bitmapTragbares Bitmap
PGMbild/x-tragbare-graukartePortable Graymap
PPMbild/x-tragbare-pixkartePortable Pixmap
XBMbild/x-xbitmapX11-Bitmap
XPMbild/x-xpixmapX11 Pixmap
SVGbild/svg+xmlSkalierbare Vektorgrafiken

Das Lesen und Schreiben von SVG-Dateien wird durch das Qt SVG Modul unterstützt. Das Qt Image Formats Modul bietet Unterstützung für weitere Bildformate.

Beachten Sie, dass die Instanz QCoreApplication erstellt werden 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 QApplication erstellt werden 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 Subtypen zurück.

bool QImageReader::supportsAnimation() const

Gibt true zurück, wenn das Bildformat Animation unterstützt; andernfalls wird false zurückgegeben.

Siehe auch QMovie::supportedFormats().

bool QImageReader::supportsOption(QImageIOHandler::ImageOption option) const

Gibt true zurück, wenn das Lesegerät option unterstützt; andernfalls wird false zurückgegeben.

Verschiedene Bildformate unterstützen verschiedene Optionen. Rufen Sie diese Funktion auf, um festzustellen, ob eine bestimmte Option vom aktuellen Format unterstützt wird. Das PNG-Format erlaubt es beispielsweise, Text in die Metadaten des Bildes einzubetten (siehe text()), und das BMP-Format erlaubt es, die Größe des Bildes zu bestimmen, ohne das gesamte Bild in den Speicher 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 mit key verbundenen Bildtext zurück.

Die Unterstützung für diese Option wird durch 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 durch QImageIOHandler::Description implementiert.

Siehe auch text(), QImageWriter::setText(), und QImage::textKeys().

QImageIOHandler::Transformations QImageReader::transformation() const

Gibt die Transformations-Metadaten des Bildes zurück, einschließlich der Bildausrichtung. Wenn das Format keine Transformations-Metadaten unterstützt, wird QImageIOHandler::TransformationNone zurückgegeben.

Siehe auch setAutoTransform() und autoTransform().

© 2025 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.