- 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()定义
setFormat()定义
setQuality()定义
setSubType()定义
setText()定义
subType()定义
write()
静态函数#
注意
此文档可能包含从 C++ 到 Python 自动翻译的代码段。我们始终欢迎对代码段的翻译做出贡献。如果您发现翻译有问题,您也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单来告诉我们
详细描述#
警告
本节包含从 C++ 到 Python 自动翻译的代码段,可能包含错误。
QImageWriter支持在存储图像之前设置格式特定选项,例如压缩级别和质量。如果您不需要此类选项,则可以使用 QImage::save() 或save()代替。要存储图像,您首先构造一个
QImageWriter对象。传递文件名或设备指针,以及图像格式给QImageWriter的构造函数。然后您可以设置多个选项,例如质量(通过调用setQuality())。canWrite()在QImageWriter可以写入图像(即图像格式支持并且设备已打开进行写入)时返回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中的错误引起的。
- __init__(device, format)#
- 参数:
device -
QIODeviceformat -
QByteArray
使用设备
device和图像格式format构造一个QImageWriter对象。- __init__(fileName[, format=QByteArray()])
- 参数:
fileName - 字符串
format -
QByteArray
构造一个将要写入名为
fileName的文件QImageWriter对象,使用图像格式format。如果未提供format,则QImageWriter将通过检查fileName的扩展名来自动检测图像格式。- __init__()
构建一个空的
QImageWriter对象。在写入之前,您必须调用setFormat()以设置图像格式,然后调用setDevice()或setFileName()。- canWrite()#
- 返回类型:
bool
如果
QImageWriter能够写入图像;即图像格式受支持且指定的设备已打开以供读取,则返回true。- compression()#
- 返回类型:
int
返回图像的压缩方式。
另请参阅
返回分配给
QImageWriter的当前设备,或者如果尚未分配设备,则返回None。另请参阅
- error()#
- 返回类型:
返回上次发生的错误类型。
- errorString()#
- 返回类型:
str
返回上次发生的最后错误的易读描述。
另请参阅
- fileName()#
- 返回类型:
str
如果当前分配的设备是文件,或者如果调用了
setFileName(),则此函数返回QImageWriter写入的文件名。否则(即如果没有分配设备或设备不是文件),返回一个空 QString。另请参阅
- format()#
- 返回类型:
返回
QImageWriter用于写入图像的格式。另请参阅
- static imageFormatsForMimeType(mimeType)#
- 参数:
mimeType -
QByteArray- 返回类型:
QByteArray 的列表
返回与
mimeType对应的图像格式列表。注意,在调用此函数之前必须创建
QGuiApplication实例。- optimizedWrite()#
- 返回类型:
bool
返回是否已开启图像写入的优化。
另请参阅
- progressiveScanWrite()#
- 返回类型:
bool
返回图像是否应作为渐进式图像写入。
- quality()#
- 返回类型:
int
返回图像格式的质量设置。
另请参阅
- setCompression(compression)#
- 参数:
compression - int
这是一个特定于图像格式的函数,用于设置图像的压缩。对于不支持设置压缩的图像格式,此值被忽略。
compression的值范围取决于图像格式。例如,“tiff”格式支持两个值,0(无压缩)和1(LZW压缩)。另请参阅
将
QImageWriter的设备设置为device。如果设备已设置,则从QImageWriter中移除旧设备,否则保持不变。如果设备尚未打开,
QImageWriter将尝试通过调用 open() 以 QIODevice::WriteOnly 模式打开设备。请注意,这并不适用于某些设备,如 QProcess、QTcpSocket 和 QUdpSocket,在这些情况下需要更多的逻辑来打开设备。另请参阅
- setFileName(fileName)#
- 参数:
fileName - 字符串
将
QImageWriter的文件名设置为fileName。内部,QImageWriter将创建一个 QFile 并以 QIODevice::WriteOnly 模式打开它,并在写入图像时使用此文件。另请参阅
- setFormat(format)#
- 参数:
format -
QByteArray
警告
本节包含从 C++ 到 Python 自动翻译的代码段,可能包含错误。
设置
QImageWriter写入图像时使用的格式为format。format是不区分大小写的文本字符串。示例writer = QImageWriter() writer.setFormat("png") # same as writer.setFormat("PNG")
您可以通过调用
supportedImageFormats()获取QImageWriter支持的所有格式列表。另请参阅
- setOptimizedWrite(optimize)#
- 参数:
optimize – bool
这是一个特定于图像格式的函数,在写入图像时设置
optimize标志。对于不支持设置optimize标志的图像格式,此值被忽略。默认为 false。
另请参阅
- setProgressiveScanWrite(progressive)#
- 参数:
progressive – bool
这是一个特定于图像格式的函数,用于在写入图像时打开
progressive扫描。对于不支持设置progressive扫描标志的图像格式,此值被忽略。默认为 false。
- setQuality(quality)#
- 参数:
quality – int
将图像格式的质量设置为
quality。某些图像格式(尤其是有损格式)需要在图像的视觉质量、编码执行时间和压缩级别之间进行权衡。此函数设置了对该权衡有支持的图像格式的级别。对于其他格式,此值被忽略。
quality的值范围取决于图像格式。例如,“jpeg”格式支持从0(低视觉质量、高压缩)到100(高视觉质量、低压缩)的质量范围。另请参阅
- setSubType(type)#
- 参数:
type –
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)#
- 参数:
key – str
text – 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)#
- 参数:
方向性 –
Transformation的组合
设置图像转换元数据,包括方向性到
transform。如果图像格式不支持转换元数据,则转换为写入之前应用。
另请参阅
- subType()#
- 返回类型:
返回图像的子类型。
另请参阅
- static supportedImageFormats()#
- 返回类型:
QByteArray 的列表
返回由
QImageWriter支持的图像格式列表。默认情况下,Qt 可以写入以下格式
格式
MIME 类型
描述
BMP
image/bmp
Windows Bitmap
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 Bitmap
XPM
image/x-xpixmap
X11 Pixmap
通过 Qt SVG 模块支持读取和写入 SVG 文件。Qt 图像格式模块提供对其他图像格式的支持。
注意,在调用此函数之前必须创建 QApplication 实例。
另请参阅
setFormat()supportedImageFormats()QImageIOPlugin- static supportedMimeTypes()#
- 返回类型:
QByteArray 的列表
返回由
QImageWriter支持的 MIME 类型列表。注意,在调用此函数之前必须创建 QApplication 实例。
- supportedSubTypes()#
- 返回类型:
QByteArray 的列表
返回图像支持的子类型列表。
- supportsOption(option)#
- 参数:
option –
ImageOption- 返回类型:
bool
警告
本节包含从 C++ 到 Python 自动翻译的代码段,可能包含错误。
如果写入器支持
option,则返回true;否则返回 false。不同的图像格式支持不同的选项。调用此函数以确定当前格式是否支持某个特定选项。例如,PNG 格式允许您将文本嵌入到图像的元数据中(参见 text())。
writer = QImageWriter(fileName) if writer.supportsOption(QImageIOHandler.Description): writer.setText("Author", "John Smith")
在将写入器与格式关联后,可以测试选项。
- transformation()#
- 返回类型:
Transformation的组合
返回图像将被设置的转换和方向。
另请参阅
将图像
image写入指定的设备或文件名。在成功的情况下返回true;否则返回false。如果操作失败,可以调用error()以查找发生的错误类型,或者errorString()以获取错误的人类可读描述。