PySide6.QtGui.QImageWriter¶
- class QImageWriter¶
QImageWriter类提供了一个格式独立的接口,用于将图像写入文件或其他设备。更多…概要¶
方法¶
def
__init__()def
canWrite()def
compression()def
device()def
error()def
errorString()def
fileName()def
format()def
optimizedWrite()def
quality()def
setCompression()def
setDevice()def
setFileName()def
setFormat()def
setQuality()def
setSubType()def
setText()def
subType()def
supportsOption()def
transformation()def
write()
静态函数¶
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
QImageWriter支持在存储图像之前设置特定格式的选项,例如压缩级别和质量。如果您不需要这些选项,可以使用 QImage::save() 或save()代替。要存储图像,首先需要构造一个
QImageWriter对象。将文件名或设备指针以及图像格式传递给QImageWriter的构造函数。然后可以设置几个选项,例如质量(通过调用setQuality())。如果QImageWriter可以写入图像(即图像格式受支持且设备已打开以进行写入),则canWrite()返回true。调用write()将图像写入设备。如果在写入图像时发生任何错误,
write()将返回 false。然后您可以调用error()来查找发生的错误类型,或者调用errorString()来获取人类可读的错误描述。调用
supportedImageFormats()以获取QImageWriter可以写入的格式列表。QImageWriter支持所有内置图像格式,以及任何支持写入的图像格式插件。注意
QImageWriter假设对分配的文件或设备拥有独占控制权。在QImageWriter对象的生命周期内,任何尝试修改分配的文件或设备的行为都将产生未定义的结果。如果需要立即访问资源,建议使用作用域的方法。例如:
imagePath = QString("path/image.jpeg") image = QImage(64, 64, QImage.Format_RGB32) image.fill(Qt.red) writer = QImageWriter(imagePath) writer.write(image) QFile.rename(imagePath, "path/other_image.jpeg")
另请参阅
QImageReaderQImageIOHandlerQImageIOPluginQColorSpace- class ImageWriterError¶
此枚举描述了使用
QImageWriter写入图像时可能发生的错误。常量
描述
QImageWriter.DeviceError
QImageWriter在写入图像数据时遇到设备错误。请咨询您的设备以获取更多关于错误的详细信息。QImageWriter.UnsupportedFormatError
Qt不支持请求的图像格式。
QImageWriter.InvalidImageError
QImageWriter.UnknownError
发生了一个未知错误。如果在调用
write()后得到这个值,很可能是由QImageWriter中的一个bug引起的。
- __init__()¶
构造一个空的
QImageWriter对象。在写入之前,您必须调用setFormat()来设置图像格式,然后调用setDevice()或setFileName()。- __init__(device, format)
- Parameters:
设备 –
QIODeviceformat –
QByteArray
使用设备
device和图像格式format构造一个QImageWriter对象。- __init__(fileName[, format=QByteArray()])
- Parameters:
fileName – str
format –
QByteArray
构造一个
QImageWriter对象,该对象将使用图像格式format写入名为fileName的文件。如果未提供format,QImageWriter将通过检查fileName的扩展名来检测图像格式。- canWrite()¶
- Return type:
布尔
如果
QImageWriter可以写入图像,则返回true;即,图像格式受支持且分配的设备已打开以供读取。- compression()¶
- Return type:
整数
返回图像的压缩。
另请参阅
返回当前分配给
QImageWriter的设备,如果没有分配设备,则返回None。另请参阅
- error()¶
- Return type:
返回上次发生的错误类型。
- errorString()¶
- Return type:
字符串
返回最近发生的错误的人类可读描述。
另请参阅
- fileName()¶
- Return type:
字符串
如果当前分配的设备是一个文件,或者已经调用了
setFileName(),此函数将返回QImageWriter写入的文件名。否则(即,如果没有分配设备或设备不是文件),则返回一个空的QString。另请参阅
- format()¶
- Return type:
返回
QImageWriter用于写入图像的格式。另请参阅
- static imageFormatsForMimeType(mimeType)¶
- Parameters:
mimeType –
QByteArray- Return type:
.list of QByteArray
返回与
mimeType对应的图像格式列表。请注意,在调用此函数之前,必须创建
QGuiApplication实例。- optimizedWrite()¶
- Return type:
布尔
返回是否已开启优化以写入图像。
另请参阅
- progressiveScanWrite()¶
- Return type:
布尔
返回图像是否应作为渐进式图像写入。
- quality()¶
- Return type:
整数
返回图像格式的质量设置。
另请参阅
- setCompression(compression)¶
- Parameters:
compression – int
这是一个特定于图像格式的函数,用于设置图像的压缩。对于不支持设置压缩的图像格式,此值将被忽略。
compression的取值范围取决于图像格式。例如,“tiff”格式支持两个值,0(无压缩)和1(LZW压缩)。另请参阅
将
QImageWriter的设备设置为device。如果已经设置了设备,旧设备将从QImageWriter中移除,否则保持不变。如果设备尚未打开,
QImageWriter将尝试通过调用 open() 以 QIODevice::WriteOnly 模式打开设备。请注意,这不适用于某些设备,如 QProcess、QTcpSocket 和 QUdpSocket,这些设备需要更多的逻辑来打开。另请参阅
- setFileName(fileName)¶
- Parameters:
fileName – str
将
QImageWriter的文件名设置为fileName。在内部,QImageWriter将创建一个QFile并以QIODevice::WriteOnly模式打开它,并在写入图像时使用此文件。另请参阅
- setFormat(format)¶
- Parameters:
format –
QByteArray
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
设置
QImageWriter在写入图像时将使用的格式为format。format是一个不区分大小写的文本字符串。示例:writer = QImageWriter() writer.setFormat("png") # same as writer.setFormat("PNG")
你可以调用
supportedImageFormats()来获取QImageWriter支持的所有格式的完整列表。另请参阅
- setOptimizedWrite(optimize)¶
- Parameters:
optimize – 布尔值
这是一个特定于图像格式的函数,它在写入图像时设置
optimize标志。对于不支持设置optimize标志的图像格式,此值将被忽略。默认值为 false。
另请参阅
- setProgressiveScanWrite(progressive)¶
- Parameters:
progressive – 布尔值
这是一个特定于图像格式的函数,它在写入图像时启用
progressive扫描。对于不支持设置progressive扫描标志的图像格式,此值将被忽略。默认值为 false。
- setQuality(quality)¶
- Parameters:
质量 – int
将图像格式的质量设置设置为
quality。一些图像格式,特别是有损格式,需要在a) 生成图像的视觉质量和b) 编码执行时间和压缩级别之间进行权衡。此函数为支持此功能的图像格式设置该权衡的级别。对于其他格式,此值将被忽略。
quality的取值范围取决于图像格式。例如,“jpeg”格式支持的质量范围从0(低视觉质量,高压缩)到100(高视觉质量,低压缩)。另请参阅
- setSubType(type)¶
- Parameters:
类型 –
QByteArray
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
这是一个特定于图像格式的函数,它将图像的子类型设置为
type。子类型可以被处理程序用来确定在保存图像时应使用哪种格式。例如,以A8R8G8R8子类型保存DDS格式的图像:
writer = QImageWriter("some/image.dds") if writer.supportsOption(QImageIOHandler.SubType): writer.setSubType("A8R8G8B8") writer.write(image)
另请参阅
- setText(key, text)¶
- Parameters:
key – str
文本 – str
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
将与键
key关联的图像文本设置为text。这对于存储版权信息或其他关于图像的信息非常有用。示例:image = QImage("some/image.jpeg") writer = QImageWriter("images/outimage.png", "png") writer.setText("Author", "John Smith") writer.write(image)
如果你想存储单个数据块(例如,评论),你可以传递一个空键,或者使用像“描述”这样的通用键。
调用
write()后,键和文本将被嵌入到图像数据中。对此选项的支持是通过
Description实现的。- setTransformation(orientation)¶
- Parameters:
orientation –
Transformation的组合
设置图像变换元数据,包括方向到
transform。如果图像格式不支持转换元数据,则在写入之前应用转换。
另请参阅
- subType()¶
- Return type:
返回图像的子类型。
另请参阅
- static supportedImageFormats()¶
- Return type:
.list of QByteArray
返回由
QImageWriter支持的图像格式列表。默认情况下,Qt可以写入以下格式:
格式
MIME类型
描述
BMP
image/bmp
Windows 位图
JPG
image/jpeg
联合图像专家组
PNG
image/png
便携式网络图形
PBM
image/x-portable-bitmap
便携式位图
PGM
image/x-portable-graymap
便携式灰度图
PPM
image/x-portable-pixmap
便携式像素图
XBM
image/x-xbitmap
X11 位图
XPM
image/x-xpixmap
X11 位图
通过Qt SVG模块支持读取和写入SVG文件。Qt图像格式模块提供了对额外图像格式的支持。
请注意,必须在调用此函数之前创建QApplication实例。
另请参阅
setFormat()supportedImageFormats()QImageIOPlugin- static supportedMimeTypes()¶
- Return type:
.list of QByteArray
返回由
QImageWriter支持的MIME类型列表。请注意,必须在调用此函数之前创建QApplication实例。
- supportedSubTypes()¶
- Return type:
.list of QByteArray
返回图像支持的子类型列表。
- supportsOption(option)¶
- Parameters:
选项 –
ImageOption- Return type:
布尔
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
如果写入器支持
option,则返回true;否则返回false。不同的图像格式支持不同的选项。调用此函数以确定当前格式是否支持某个选项。例如,PNG格式允许你将文本嵌入图像的元数据中(参见text())。
writer = QImageWriter(fileName) if writer.supportsOption(QImageIOHandler.Description): writer.setText("Author", "John Smith")
选项可以在写入器与格式关联后进行测试。
- transformation()¶
- Return type:
返回图像已被设置为写入的变换和方向。
另请参阅
将图像
image写入指定的设备或文件名。成功时返回true;否则返回false。如果操作失败,您可以调用error()来查找发生的错误类型,或者调用errorString()来获取错误的可读描述。